一元多項式計算(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...