在主函式中呼叫函式createpolyn ()函式建立兩個多項式:
2 + 3x + 5x3 + 2x4
3 + 2x + 4x2
然後呼叫函式addpolyn求它們的和,最後列印出求和後的結果。
/*①多項式資料結構定義*/
typedef struct pnode elemtype;
typedef linklist polynomial; //一元
n次多項式型別定義
/*②多項式操作介面定義*/
// 建立乙個一元多項式
status createpolyn(polynomial &p);
// 列印該鍊錶的結果
void printpolyn(polynomial plist);
// 比較兩個結點的指數的大小
int cmp(elemtype a, elemtype b);
// 把兩個一元多項式相加
polynomial addpolyn(polynomial pa, polynomial pb);
/*③部分操作的實現函式*/
// 建立乙個一元多項式
status createpolyn(polynomial &p)
initlist_l(p); //初始化鍊錶
printf("請輸入多項式項數
m:\n");
scanf("%d",&m);
printf("請輸入多項式每項的係數和指數,格式如(
3.0, 2):\n");
for(i=1;i<=m;i++)
輸入乙個結點,將其根據指數從小到大的排列順序插入鍊錶
#include#include#define ok 1
#define error 0
typedef int status ;
typedef int elemtype ;
typedef struct pnode
pnode,*polynomial;
//初始化
status initlist_l(polynomial &p);
// 建立乙個一元多項式
status createpolyn(polynomial & p);
// 列印該鍊錶的結果
status printpolyn(polynomial plist);
// 比較兩個結點的指數的大小
int cmp(elemtype a, elemtype b);
// 把兩個一元多項式相加
polynomial addpolyn(polynomial pa, polynomial pb);
//單鏈表的初始化
status initlist_l(polynomial &p)
// 建立乙個一元多項式
status createpolyn(polynomial &p)
return ok;
}//creatpolyn
// 列印該鍊錶的結果
status printpolyn(polynomial p)
printf("0");
printf("\n");
return ok;
}// 比較兩個結點的指數的大小
int cmp(int a,int b)
else
/* 釋放qb所指向的結點的空間 */
temp = qb;
qb = qb->next; /* let qb point to the next node */
free(temp);
break;
case 1: /* 第乙個鍊錶中當前結點的指數值大 */
單鏈表應用 一元多項式
單鏈表應用 一元多項式 問題描述 編寫乙個程式用單鏈表儲存多項式,並實現兩個一元多項式a與b相加的函式。a,b剛開始是公升序的,a與b之和按降序排列。例如 多項式a 1.2x 0 2.5x 1 3.2x 3 2.5x 5 多項式b 1.2x 0 2.5x 1 3.2x 3 2.5x 5 5.4x 1...
一元多項式求和演算法(單鏈表實現)
單鏈表的應用舉例 採用單鏈表儲存,則每乙個非零項對應單鏈表中的乙個節點,且單鏈表應按指數遞增序列排列。為了節省空間只儲存非零項。其中 eof為係數域,存放非零項的係數 exp為指數域,存放非零項的指數 next為指標域,存放下一結點的指標 偽 1.工作指標pre,p,qre,q初始 2.while ...
實現一元多項式
1 利用鍊錶的方式給輸入的項邊插入排序邊進行合併同類項 2 include3 include4 5struct function 一元多項式6 1112 struct function insert struct function head,struct function p 插入並排序一元多項式 ...