記錄資料結構實習之一元多項式計算

2021-10-06 22:40:10 字數 1634 閱讀 4814

一元多項式計算(c語言)

題目:一元多項式計算

功能要求

(1)能夠按照指數降序排列建立並輸出多項式;

(2)能夠完成兩個多項式的相加、相減,並將結果輸出;

程式:

#include#include#define null 0

typedef struct term term, *linklist;//term為乙個新型別(是乙個結構體),linklist為指向這樣的結構體的指標

typedef linklist polynomial;

//若有序鍊錶l中存在與項t的指數相等的元素,則指標q指向l中第乙個指數為t->expn的節點的位置,

//否則q指向第乙個指數滿足與t->expn相比》0的節點的前驅位置

bool locateelem(linklist l, linklist t, linklist &q)

else if (t->expn == p1->expn)

else

} if (!p1)

}// 1. 直接選擇排序 ------直接交換資料

void listsort_1(linklist head)

for (p = head; p != null; p = p->next)

}if (t != p)

}return;

}//輸入m項的係數和指數,建立表示一元多項式的帶有頭節點的有序鍊錶p

//利用尾插法

void createpolyn(polynomial &p, int m)

else

} listsort_1(p);

}//列印多項式鍊錶

void printpolynomial(polynomial p)

printf("]\n\n");

}void display(polynomial l) //列印多項式

else

p = p->next;

} printf("\n");

}int cmp(linklist qa, linklist qb)

void addpolyn(linklist la, linklist lb, linklist &lc)

if (pa->expn == pb->expn) //指數相同

pa = pa->next;

pb = pb->next;

continue;

}else if (pa->expn > pb->expn)

else if (pa->expn < pb->expn)

}pc->next = null;

}void subpolyn(linklist la, linklist lb, linklist &lc)

if (pa->expn == pb->expn) //指數相同

pa = pa->next;

pb = pb->next;

continue;

}else if (pa->expn > pb->expn)

else if (pa->expn < pb->expn)

}pc->next = null;

}int main()

資料結構 一元多項式

void initlist polynode l 初始化多項式單鏈表 int getlength polynode l 求多項式單鏈表的長度 polynode getelem polynode l,int i 返回多項式單鏈表中第i個結點的指標 polynode locate polynode l,...

資料結構實驗之一元多項式相加

實驗內容 結合書上第41頁的例子,採用鏈式儲存結構,將兩個線性鍊錶表示的一元多項式相加,並輸出。此一元多項式遵循多項式相加運算規則 對於兩個一元多項式中存在指數相同的項時,其對應係數相加。合併後係數和為零時,刪除 和多項式 中此項 合併後係數和不為零時,則構成 和多項式 中的一項。對於兩個一元多項式...

資料結構 一元多項式相加

一元多項式相加 include include struct node typedef struct node polynomial 建立帶有表頭的鍊錶 poly用於儲存係數和指數 polynomial createpoly int poly,int len return head 銷毀鍊錶 voi...