單鏈表 稀疏多項式的表示

2021-08-28 16:35:31 字數 2709 閱讀 1517

稀疏多項式:如p(x)=1+3x1000+x20000q(x)=x+x50000

r(x)=1+x+3x1000+x20000+x50000。

數學模型:

p=((1,0),(3,1000),(1,20000))  q=((1,1),(1,50000))    r=((1,0),(1,1),(3,1000),(1,20000),(1,50000))

乙個基礎元素稱為乙個小項,可定義型別term

typedef structterm;
首先定義輔助巨集:

#define ok 1

#define list_init_size 100

#define listincrement 10

#define error 0

#define true 1

#define false 0

#define null 0

#define overflow -1

typedef int status;

多項式的儲存結構定義:

//多項式的儲存結構定義

typedef structterm,elemtype;

typedef struct lnode*linklist;

typedef linklist polynomial;

插入乙個結點,使之按照指數大小從大到小排序。

status insert(polynomial &p,polynomial &q)

if(!p) //沒找到插入隊尾

prep->next=q;

else

else //否則係數改變

p->data.coef+=q->data.coef;

}else

}return ok;

}

輸入n項指數與係數,建立一元多項式.

status inputelem(elemtype &e)

status createpolyn(polynomial &p,int n)

}

輸出多項式.

status  printpolyn(polynomial &p)

printf("\n");

}return ok;

}

銷毀一元多項式.

status destroypolyn(polynomial &p)

return ok;

}

計算pa=pa+pb 並銷毀pb。

status addpolyn(polynomial &pa,polynomial &pb)

else

}else if(pa->data.expndata.expn)

else

}if(pb)

prea->next=pb;

free(pb);

pb = null;

return ok;

}

計算pa=pa-pb 並銷毀pb。

status decreasepolyn(polynomial &pa,polynomial &pb)

else

} else if(pa->data.expndata.expn)

else

} q=pb;

while(pb)

if(q)

prea->next=q;

free(pb);

return ok;

}

計算pc=pa*pb 。

status ridepolyn(polynomial &pa,polynomial &pb,polynomial &pc)

pa=pa->next;

pb=pb->next;

}return ok;

}

計算pc=pa/pb 。商存入pc,餘數存入pa.

status removepolyn(polynomial &pa,polynomial &pb,polynomial &pc)

decreasepolyn(pa,p);//將pa與臨時多項式相減 得到乙個新的pa

pa=pa->next; //獲得首項

pb=pb->next;

}return ok;

}

進行多項式的求導.

status polynderivative(polynomial &p)

else

}return ok;

}

單鏈表表示多項式筆記

單鏈表表示多項式筆記 多項式的項作為節點插入 term term insertafter int c,int e 2.多項式的輸出,通過節點類中的運算子過載 類中定義 friend ostream operator ostream const term ostream operator ostrea...

單鏈表實現多項式相加

include include struct node void destroypoly struct node poly 釋放實現多項式申請的空間 return struct node createnode int coe,int exp 申請空間存放多項式當前項 struct node crea...

單鏈表實現多項式相加

本程式使用鍊錶實現了兩個多項式的相加。多項式的相加主要是考慮相加項的指數是否相同,如果相同則係數相加,指數不變。本程式當中,實現該過程的思想為,在錄入乙個多項式所有項的係數和指數以後,使用鍊錶思想構造一條單鏈表,記作鍊錶a,結 點儲存項的係數和指數。依照此法,構建第二條多項式鍊錶,記作鍊錶b。這樣準...