基於單鏈表實現一元n次多項式的建立 輸出和求和操作

2021-08-14 05:13:29 字數 2497 閱讀 1242

在主函式中呼叫函式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 插入並排序一元多項式 ...