(資料結構)一元多項式相乘

2021-10-06 01:26:29 字數 1981 閱讀 6306

要求採用鍊錶形式,求兩個一元多項式的乘積:h3 = h1*h2。函式原型為:void multiplication( node * h1, node * h2, node * h3 )。

輸入資料為兩行,分別表示兩個一元多項式。每個一元多項式以指數遞增的順序輸入多項式各項的係數(整數)、指數(整數)。

例如:1+2x+x²表示為:<1,0>,<2,1>,<1,2>,

以指數遞增的順序輸出乘積: 《係數,指數》,《係數,指數》,《係數,指數》,

零多項式的輸出格式為:<0,0>,

說明:本題目有預設**,只要提交你編寫的函式即可。

前置**:

/* preset code begin - never touch code below */

#include

#include

typedef

struct node

node;

void

multiplication

( node *

, node *

, node *);

void

input

( node *);

void

output

( node *);

void

input

( node * head )

else

if( c ==

'-')

sign =-1

;else

if( c >=

'0'&& c <=

'9')

else

if( c ==

',')

}else

if( c ==

'>')}

}void

output

( node * head )

printf

("\n");

}int

main()

/* preset code end - never touch code above */

<1,0>,<2,1>,<1,2>,↵

<1,0>,<1,1>,↵

<1,0>,< 3,1>,< 3,2>,<1,3>,↵

<0,0>,↵

<1,20>,<-8,40>,↵

<0,0>,↵

<1,20>,<-8,40>,↵

<0,0>,↵

<0,0>,↵

<-1,0>,<1,1>,↵

<1,0>,<1,1>,↵

<-1,0>,<1,2>,↵

<5,0>,<10,1>,↵

<2,0>,< 3,1>,<4,2>,<5,3>,↵

<10,0>,<35,1>,<50,2>,<65,3>,<50,4>,↵

void

multiplication

(node *head1, node *head2, node *head3)

int exp = h1-

>exp+h2-

>exp;

if(p1-

>next ==

null

)else

node*tmp = p2-

>next;

if(p2-

>next ==

null

)else

if(tmp-

>exp == exp)

}else

if(tmp-

>exp > exp)

}

h2 = h2-

>next;

p2 = head3;

}

h2 = head2-

>next;

h1 = h1-

>next;}if

(head3-

>next ==

null

)}

資料結構題 一元多項式相乘

題目描述 要求採用鍊錶形式,求兩個一元多項式的乘積 h3 h1 h2。函式原型為 void multiplication node h1,node h2,node h3 輸入 輸入資料為兩行,分別表示兩個一元多項式。每個一元多項式以指數遞增的順序輸入多項式各項的係數 整數 指數 整數 例如 1 2x...

一元多項式相乘

include include include define max num 40 能夠處理的一元多項式的長度 define max coef 10 係數或冪 帶符號的情況下 能處理的最大長度 typedef struct inodeinode typedef struct inode poly t...

資料結構 一元多項式

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