


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
一元多項式相加實驗報告一元多項式的相加一實驗內(nèi)容根據(jù)所學(xué)的數(shù)據(jù)結(jié)構(gòu)中線性結(jié)構(gòu)(線性表)的邏輯特性和物理特性及相關(guān)法,應(yīng)用于求解一個具體的實際問題 兩個多項式相加二需求分析掌握線性結(jié)構(gòu)的邏輯特性和物理特性。建立一元多項式。將一元多項式輸入,并存儲在內(nèi)存中,并按照指數(shù)降序排列輸出多項式。能夠完成兩個多項式的加減運算,并輸出結(jié)果。三概要設(shè)計本程序所用到的抽象數(shù)據(jù)類型:typedefOrderedLinkList polynomial;//用帶表頭結(jié)點的有序鏈表表示多項式結(jié)點的數(shù)據(jù)元素類型定義為:typedefstruct{//項的表示floatcoef;//系數(shù)int expn;//指數(shù)term,ElemType;VoidAddPolyn(polynomail&Pa,polynomail&Pb)PositionGetHead()PositionNextPos(LinkListL,Linkp)ElemGetCurElem(Linkp)intcmp(terma termb)StatusSetCurElem(Link&p,ElemTypee)StatusDelFirst(Linkh,Link&q)StatusListEmpty(LinkListL)StatusAppend(LinkList&L,LinkFreeNode()存儲結(jié)構(gòu)coefcoefexpnext項式的相加相減操作。模塊劃分a)主程序;2)初始化單鏈表;3)建立單鏈表;4)相加多項式a)主程序;2)初始化單鏈表;3)建立單鏈表;4)相加多項式主程序流程圖開始開始申請結(jié)點空間輸入多項式各項的系數(shù)X,指數(shù)Y輸出已輸出的多項式否是否輸入正確合并同類項結(jié)束四詳細(xì)設(shè)計根據(jù)一元多項式相加的運算規(guī)則:對于兩個一元多項式中所有指數(shù)相同的項,對應(yīng)系數(shù)相加,若其和不為零,則構(gòu)成“和多項式”中的一項,對PolyAddpapb所指的兩個多項式相加,結(jié)果為paqaqb分別從多項式的首項開始掃描2-5-1qa和qb可能出現(xiàn)下列三種情況之一:qa->expqb->exp,qa繼續(xù)向后掃描。qa->expqb->exp,則將其系數(shù)相加。若相加結(jié)果不為零,將結(jié)果qa->coefqbqaqbqa、qb繼續(xù)向后掃描。qa->expqb->exp,qbqa所指結(jié)點之前,然后qa、qb繼續(xù)向后掃描。qaqbpa指向的鏈表即為兩個多項式之和。五源程序代碼#include<stdio.h>#include<malloc.h>#include<stdlib.h>#defineNULL0typedefstructNODE{float coef; //系數(shù)int expn; //指數(shù)structNODE*next;}NODE;NODE*Creat(intn);voidprint(NODENODE*AddPolyn(NODE*head1,NODE*head2);NODE*Delfirst(NODE*head,NODE*q);voidInsertBefore(NODE*p1,NODEint compare(inta,intb);main(){NODE*head1,*head2,*head3;intn1,n2;printf("請輸入你需要的多項數(shù)的數(shù)目n1 :");scanf("%d",&n1);head1=Creat(n1);printf("第一個多項式的顯示:\n");print(head1);printf("\n請輸入你需要的多項數(shù)的數(shù)目n2 :scanf("%d",&n2);head2=Creat(n2);printf("\n第二個多項式的顯示:print(head2);head3=AddPolyn(head1,head2);printf("\n合并后的多項式的顯示:print(head3);printf("\n");}/*創(chuàng)建鏈表*/NODE*Creat(intn){NODE*current,*previous,*head;inti;head=(NODE*)malloc(sizeof(NODE));/*創(chuàng)建頭結(jié)點*/previous=head;for(i=0;i<n;i++){current=(NODE*)malloc(sizeof(NODE));printf("請輸入系數(shù)和指數(shù):");scanf("%f%d",¤t->coef,¤t->expn);previous->next=current;previous=current;}previous->next=NULL;returnhead;}/*qaqbpb(00),pb里面由InsertBefore和Delfirst兩個小模塊組成一部分NODE *AddPolyn(NODE*head1,NODE*head2){NODE*ha,*hb,*qa,*qb;inta,b;floatsum;ha=head1; /*hahb指向頭結(jié)點hb=head2;qa=ha->next; /*qaqb指向頭結(jié)點的下一個結(jié)點qb=hb->next;while(qa&&qb) /*qaqb均非空*/{a=qa->expn;b=qb->expn;switch(compare(a,b)){case-1: /*qa->expn<qb->expn*/ha=qa;qa=qa->next;break;case0:sum=qa->coef+qb->coef; /*系數(shù)的和*/if(sum!=0.0){ /*如果不是qa->coef=sum; /*改變系數(shù)*/ha=qa;}else{free(Delfirst(ha,qa));}free(Delfirst(hb,qb));qa=ha->next;qb=hb->next; /*qb釋放后要重新賦值*/break;case1: /*qa->expn>qb->Delfirst(hb,qb);InsertBefore(ha,qb); /*qbha下一個結(jié)點之前qb=hb->next;ha=ha->next;break;}}if(qb)ha->next=qb; /*free(head2);returnhead1;}/*比較*/intcompare(inta,intb){if(a<b)return-1;elseif(a>return1;elsereturn0;}/*刪除結(jié)點q*/NODE*Delfirst(NODE*p1,NODE*q){p1->next=q->next;return(q);}/*插入結(jié)點,引入結(jié)點p,可以讓p插入到p2和p1之間*/voidInsertBefore(NODE*p1,NODE*p2){NODE*p;p=p1->next;p1->next=p2;p2->next=p;}/*打印,為了美觀程序分開打印*/voidprint(NODE*head){NODE*current;current=head->next;while(current->next!=NULL){printf("%0.f*x^%d+",current->coef,current->expn);current=current->next;}printf("%0.f*x^%d",current->coef,current->expn);}六調(diào)試分析
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電子脂肪秤項目合作計劃書
- 氣象預(yù)報系統(tǒng)歷史數(shù)據(jù)存儲策略
- 教育寓言類故事的解析
- 軟件應(yīng)用教程
- 紅海行動寓言故事中的成長啟示
- Isoxepac-Standard-生命科學(xué)試劑-MCE
- 2025年劇裝道具相關(guān)工藝美術(shù)品合作協(xié)議書
- 4-epi-Edoxaban-tosylate-4-epi-DU-176b-生命科學(xué)試劑-MCE
- 金融投資行業(yè)理財產(chǎn)品投資風(fēng)險免責(zé)協(xié)議
- 小學(xué)生學(xué)習(xí)方法探討征文
- 人教版八年級數(shù)學(xué)下冊課件【全冊】
- 物聯(lián)網(wǎng)管理平臺的設(shè)計與實現(xiàn)
- 1例妊娠糖尿病的個案護(hù)理
- 《排球正面雙手傳球》課件
- 光伏發(fā)電職業(yè)病危害預(yù)評價方案方案
- 財務(wù)報表涉稅分析
- 五官科眼耳鼻咽喉科醫(yī)療常用器械的認(rèn)識
- 企業(yè)清產(chǎn)核資報表
- 淺談建筑工程機(jī)電安裝施工技術(shù)運用論文
- 2023年新改版教科版四年級下冊科學(xué)練習(xí)題(一課一練+單元+期中+期末)
- 婦產(chǎn)科護(hù)理學(xué)課程標(biāo)準(zhǔn)
評論
0/150
提交評論