一、實驗要求
使用者根據自己的需求輸入兩個一元多項式,要求能夠顯示輸入的一元多項式,再將這兩個一元多項式相加,輸出結果。
二、**實現
#include
#include
#include
#include
#include
using namespace std;
typedef
struct plnodeplnode;
typedef plnode *plinklist;
void
createpolyn
(plinklist &spolyn)
//建立空鍊錶
void
listinsert
(plinklist spolyn,plnode snewnode)
bool getint
(int
&value)
;fflush
(stdin);
//清空緩衝區
gets
(str)
;//等待輸入資料,並將資料存到str中
unsigned
int index=1;
int ntemp=0;
if(str[0]
=='-'
)//判斷是否為負數
ntemp=1;
for(index=ntemp;index<
strlen
(str)
;index++
)//判斷輸入的字串是否合理
value=
atoi
(str)
;//將字串轉化為整數
return true;
}void
printpoly
(plnode sptemp)
else
if(sptemp.dbcoef==-1
)//係數為-1時
else
}void
printpolyn
(plinklist spolyn)
else
printpoly
(*sptemp)
; sptemp=sptemp->next;}}
//多項式按指數從小到大排序
plinklist listsort
(plinklist spolyn)}}
return spolyn;
}void
inputdata
(int norder,plinklist &spolyn)
while
(n<0)
; plnode snewnode;
//定義新結點
double dbcoef;
int nexpn;
int expn[n]
;for
(int i=
0;i)while
(cin.
fail()
||dbcoef==0)
; cout<<
"請輸入第"
<
1<<
"項的指數:"
;getint
(nexpn)
;//cout
expn[i]
=nexpn;
//使用陣列記錄之前輸入的指數
for(
int j=
0;j1;j++)if
(nexpn==expn[j]
)//當前指數是否已輸入過,是則報錯
snewnode.dbcoef=dbcoef;
//存入資料
snewnode.nexpn=nexpn;
listinsert
(spolyn,snewnode)
;//將新結點插入多項式鍊錶的尾部}}
plinklist addpolyn
(plinklist spolyn1,plinklist spolyn2)
else
if(nex==0)
//當前結點的指數相同
spolyn1temp=spolyn1temp->next;
spolyn2temp=spolyn2temp->next;
//移動結點
}else
} plinklist spolyntemp;
createpolyn
(spolyntemp);if
(spolyn1temp)
spolyntemp=spolyn1temp;
else
spolyntemp=spolyn2temp;
while
(spolyntemp)
//鏈結剩餘結點到和鍊錶中
return spolynadd;
}void
freepolyn
(plinklist spolyn)
}int
main()
三、執行結果 資料結構(11)線性表之一元多項式表示及相加
符號多項式處理,是表處理的典型範例。而這章就是主要就本經典案例進行討論。數學上,乙個一元多項式pn x 可以按照公升冪寫成pn x p0 p 1x p 2x2 pnxn 它由n 1個係數唯一確定。因此在計算機裡面,它可以由乙個線性表p來表示 p p0,p1,p 2,pn 每一項的指數i隱含在其係數p...
線性表 一元多項式的運算
polylist polycreate polylist head rear next null return head 思路 將兩個多項式從頭掃瞄,指數相同項相加,如果為0則釋放該空間,如果非0則構成一項,最終指數不同的項按指數公升序排列。用變數p q分別指向鏈a b中的第一結點,把結果存放在a中...
資料結構 一元多項式
void initlist polynode l 初始化多項式單鏈表 int getlength polynode l 求多項式單鏈表的長度 polynode getelem polynode l,int i 返回多項式單鏈表中第i個結點的指標 polynode locate polynode l,...