版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
一 實(shí)驗(yàn)內(nèi)容和目實(shí)驗(yàn)內(nèi)容:1.單鏈表的建立(創(chuàng)立一種一元多項(xiàng)式單鏈表的遍歷(一元多項(xiàng)式的輸出、一元多項(xiàng)式的項(xiàng)數(shù)統(tǒng)計(jì)單鏈表的合并(一元多項(xiàng)式的加減運(yùn)算二 實(shí)驗(yàn)原18??12+17??9+9??6+5??3+6??2+新的結(jié)點(diǎn)插在該結(jié)點(diǎn)的前面;否則跟背面一種再比較(pq指針向鏈表后移(序單鏈表的合并(即本例中的一元多項(xiàng)式的加減法P1為:18??17+9??8+4??2+P2為:12??12+7??8+P1+P2的成果為:18??17+12??12+16??8+4??3+4??2+先運(yùn)用兩個(gè)指針,PaPbPaPbPa指向的結(jié)點(diǎn)插入到新的PaPbPb指向的結(jié)點(diǎn)插入到新的PaPb指向的結(jié)點(diǎn)指數(shù),則先把兩者指向結(jié)點(diǎn)指數(shù)相加,PaPa,PbPb指向的結(jié)點(diǎn)。具體環(huán)節(jié)如圖一種鏈表剩余的全部結(jié)點(diǎn)插入到鏈表之中(即只需要把剩余的結(jié)點(diǎn)接起來三 程序流程四 實(shí)驗(yàn)成五 操作闡1(創(chuàng)立一元多項(xiàng)式)2(輸出一元多項(xiàng)式)5(求一元多項(xiàng)式操作)1(創(chuàng)立一元多項(xiàng)式)創(chuàng)立多項(xiàng)式。六 附錄:代#include<stdio.h>#include<stdlib.h>#defineOK#defineERRORtypedefstruct{int float structLNode }/*基本操作的實(shí)現(xiàn)向鏈表中插入一種新的結(jié)點(diǎn)(插入過程中保持指數(shù)降序排序hNodenNodeintInsertLNode(LNode*hNode,LNode{LNode*p,if(hNode->next=={}{
hNode->next=p=q=hNode-while(q!={如果新的結(jié)點(diǎn)指數(shù)比q結(jié)點(diǎn)的指數(shù)大,則該結(jié)點(diǎn)插在qif(nNode->exp>q-{nNode->next=q;p->next=nNode;}如果新的結(jié)點(diǎn)指數(shù)與qif(nNode->exp==q-{q->coef=nNode->coef+q->coef;}如果新的結(jié)點(diǎn)指數(shù)比q如果q是最后一種結(jié)點(diǎn),直接插入在q如果q不是最后一種結(jié)點(diǎn),則qif(q->next=={}{}}}
nNode->next=q->next;q->next=nNode;p=p-q=q-return}因此,規(guī)定傳入的Pa和PbvoidAddPolyn(LNode*Pa,LNode{LNode*head,*q, LNode LNode head=(LNode*)malloc(sizeof(LNode*));head->next=NULL;q=head;PtrB=Pa=Pa->next;Pb=Pb-如果Pa和Pbwhile(Pa&&{如果Pa所指向結(jié)點(diǎn)的指數(shù)不不大于Pbif(Pa->exp>Pb-{把Patmp=Pa=Pa->next;tmp->next=NULL;q->next=tmp;q=q->next;}如果Pa所指向結(jié)點(diǎn)的指數(shù)等于Pbif(Pa->exp==Pb-{先把Pa指向結(jié)點(diǎn)和Pb指向結(jié)點(diǎn)的系數(shù)相加,并儲存到Pa再把Patmp=tmp->coef=tmp->coef+Pb->coef;recycle=Pb;Pa=Pa->next;Pb=Pb->next;tmp->next=NULL;q->next=tmp;q=q->next;}如果Pa所指向結(jié)點(diǎn)的指數(shù)不大于Pbif(Pa->exp<Pb-{把Pbtmp=Pb=Pb->next;tmp->next=NULL;q->next=tmp;q=q->next;}}if{q->next=}if{q->next=}PtrB->next=把新的鏈表頭結(jié)點(diǎn)賦到PaPa=head;}//A-B=A+(-voidSubtractPolyn(LNode*Pa,LNode{LNode把Lbfor(p=Pb->next;p!=NULL;p=p->next)p->coef=-(p->coef);AddPolyn(Pa,}/*具體功效的實(shí)現(xiàn)intCreatePolynomial(LNode{inti,n,exp;floatcoef;LNode*node;if(scanf("%d",&n)==0{returnERROR;}printf("即將創(chuàng)立一種項(xiàng)數(shù)為%d的多項(xiàng)式\n"for(i=1;i<=n;i++{printf("請輸入第%d項(xiàng)的系數(shù)和指數(shù):"if(scanf("%f,%d",&coef,&exp)=={node=(LNodeif{return}//向新結(jié)點(diǎn)賦值node->exp=exp;node->coefcoef;node->next}{}}
InsertLNode(hNode,if(i==n+}
returnOK;returnERROR;voidPrintPolynomial(LNode{LNode*p=head-inti while(p!={如果系數(shù)不為0if(p->coef!={if(i++!=0&&p->coef>0)printf("%.2fx^%d",p->coef,p-}
避免系數(shù)為0if(p->next&&p->next->coef==0)printf(""); p=p-}}voidListTravel(LNode{intn=0;LNode*p;for(p=head->next;p!=NULL;p=p->next)printf("%d,",for(p=head->next;p!=NULL;p=p->next)printf("%.2f,%d,",p->coef,p->exp);}voidListCount(LNode{LNode*p;inti=每發(fā)現(xiàn)一種非空結(jié)點(diǎn),ifor(p=head->next;p!=NULL;p=p->next)printf("\n該一元多項(xiàng)式有%d項(xiàng)\n\n"i);}void{LNode*La,La=(LNode*)malloc(sizeof(LNode));Lb=(LNodeLa->next=Lb->next=if(CreatePolynomial(La)==ERROR){}if(CreatePolynomial(Lb)==ERROR){}AddPolyn(La,Lb);}void{LNode*La,La=(LNode*)malloc(sizeof(LNode));Lb=(LNodeLa->next=Lb->next=if(CreatePolynomial(La)==ERROR){}if(CreatePolynomial(Lb)==ERROR){}SubtractPolyn(La,Lb);}int{LNode*head=(LNode*)malloc(sizeof(LNode));charch='\0';if{return}head->next=while{printf("單鏈表的應(yīng)用演示程序\n");printf(一元多項(xiàng)式的表達(dá)及相加\n");printf(1.創(chuàng)立一種一元多項(xiàng)式并輸出printf(2.遍歷單鏈表并輸出整數(shù)序列printf(3.創(chuàng)立兩個(gè)一元多項(xiàng)式并相加printf(4.創(chuàng)立兩個(gè)一元多項(xiàng)式并相減printf(5.求一種一元多項(xiàng)式中的項(xiàng)數(shù)\n");printf(Q.退出程序printf(scanf("%c",&ch);switch(ch){caseif(head->next!={head=(LNode*)malloc(sizeof(LNode)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版新媒體運(yùn)營兼職編輯人員合作合同范本3篇
- 北京石油化工學(xué)院《運(yùn)輸技術(shù)實(shí)務(wù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 老人的智慧課程設(shè)計(jì)
- 二零二五年度2025版二婚離婚協(xié)議中的財(cái)產(chǎn)分割與子女撫養(yǎng)規(guī)劃
- 生產(chǎn)部年終工作總結(jié)2篇
- 2025版金屬貨物運(yùn)輸合同匯編與防銹防腐措施3篇
- 2025年度VOC廢氣處理設(shè)施運(yùn)行優(yōu)化與維修服務(wù)合同3篇
- 2025版綠色建筑室內(nèi)環(huán)境凈化與治理承包合同3篇
- 網(wǎng)絡(luò)新聞?wù)n程設(shè)計(jì)優(yōu)缺點(diǎn)
- 二零二五年360借條合同多消費(fèi)分期支付及還款服務(wù)協(xié)議2篇
- 《萬以內(nèi)數(shù)的認(rèn)識》大單元整體設(shè)計(jì)
- 24.教育規(guī)劃綱要(2024-2024)
- 山東省棗莊市滕州市2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(含答案)
- 我的家鄉(xiāng)隴南
- 2023-2024學(xué)年蘇州市八年級語文上學(xué)期期末考試卷附答案解析
- 政治忠誠、政治定力、政治擔(dān)當(dāng)、政治能力、政治自律情況自我評價(jià)
- 壓力鋼管安裝施工方案
- 醫(yī)保按病種分值付費(fèi)(DIP)院內(nèi)培訓(xùn)
- 軍人怎樣戰(zhàn)勝挫折
- 學(xué)習(xí)提示及單元任務(wù) 統(tǒng)編版高中語文選擇性必修上冊
- 大祥區(qū)三八亭小學(xué)2023年春季研學(xué)實(shí)踐活動(dòng)方案
評論
0/150
提交評論