freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結構課程設計選題-文庫吧

2024-10-17 05:58 本頁面


【正文】 *next。} *Polyn,Polynomial。在這個結構體變量中coef表示每一項前的系數(shù),expn表示每一項的指數(shù),polyn為結點指針類型,屬于抽象數(shù)據(jù)類型通常由用戶自行定義,Polynomial表示的是結構體中的數(shù)據(jù)對象名。(2)當用戶輸入兩個一元多項式的系數(shù)和指數(shù)后,建立鏈表,存儲這兩個多項式,主要說明如下:Polyn CreatePolyn(Polyn head,int m)建立一個頭指針為head、項數(shù)為m的一元多項式p=head=(Polyn)malloc(sizeof(struct Polynomial))。為輸入的多項式申請足夠的存儲空間p=(Polyn)malloc(sizeof(struct Polynomial))。建立新結點以接收數(shù)據(jù)Insert(p,head)。調(diào)用Insert函數(shù)插入結點這就建立一元多項式的關鍵步驟(3)由于多項式的系數(shù)和指數(shù)都是隨即輸入的,所以根據(jù)要求需要對多項式按指數(shù)進行降冪排序。在這個程序模塊中,使用鏈表,根據(jù)對指數(shù)大小的比較,對各種情況進行處理,此處由于反復使用指針對各個結點進行定位,找到合適的位置再利用void Insert(Polyn p,Polyn h)進行插入操作。(4)加、減、乘、除、的算法實現(xiàn):在該程序中,最關鍵的一步是實現(xiàn)四則運算和輸出,由于加減算法原則是一樣,減法可通過系數(shù)為負的加法實現(xiàn);對于乘除算法的大致流程都是:首先建立多項式a*b,a/b,然后使用鏈表存儲所求出的乘積,商和余數(shù)。這就實現(xiàn)了多項式計算模塊的主要功能。(5)另一個子函數(shù)是輸出函數(shù) PrintPolyn();輸出最終的結果,算法是將最后計算合并的鏈表逐個結點依次輸出,便得到整鏈表,也就是最后的計算式計算結果。由于考慮各個結點的指數(shù)情況不同,分別進行了判斷處理。四、程序新點通過多次寫程序,發(fā)現(xiàn)在程序在控制臺運行時總是黑色的,本次寫程序就想著改變一下,于是經(jīng)過查資料利用system(“Color E0”)??梢院瘮?shù)解決,這里“E0,”E是控制臺背景顏色,0是控制臺輸出字體顏色。五、設計中遇到的問題及解決辦法首先是,由于此次課程設計里使用指針使用比較多,自己在指針多的時候易腦子混亂出錯,對于此問題我是采取比較笨的辦法在稿紙上寫明白后開始進行 4代碼編寫。其次是,在寫除法模塊時比較復雜,自己通過查資料最后成功寫出除法模塊功能。最后是,前期分析不足開始急于寫代碼,中途出現(xiàn)各種問題,算是給自己以后設計時的一個經(jīng)驗吧。六、測試(程序截圖)七、總結通過本次應用C語言設計一元多項式基本計算程序,使我更加鞏固了C語言程序設計的知識,以前對指針這一點使用是比較模糊,現(xiàn)在通過此次課程設計對指針理解的比較深刻了。而且對于數(shù)據(jù)結構的相關算法和函數(shù)的調(diào)用方面知識的加深。本次的課程設計,一方面提高了自己獨立思考處理問題的能力;另一方面使自己再設計開發(fā)程序方面有了一定的小經(jīng)驗和想法,對自己以后學習其他語言程序設計奠定了一定的基礎。八、指導老師評語及成績附錄:(課程設計代碼)include include include typedef struct Polynomial {float coef。6int expn。struct Polynomial *next。} *Polyn,Polynomial。//Polyn為結點指針類型 void Insert(Polyn p,Polyn h){if(pcoef==0)free(p)。//系數(shù)為0的話釋放結點else{Polyn q1,q2。q1=h。q2=hnext。while(q2amp。amp。pexpnexpn)//查找插入位置{q1=q2。q2=q2next。}if(q2amp。amp。pexpn==q2expn)//將指數(shù)相同相合并 {q2coef+=pcoef。free(p)。if(!q2coef)//系數(shù)為0的話釋放結點{ q1next=q2next。free(q2)。}}else { pnext=q2。q1next=p。}//指數(shù)為新時將結點插入} 7} //建立一個頭指針為head、項數(shù)為m的一元多項式 Polyn Create(Polyn head,int m){int i。Polyn p。p=head=(Polyn)malloc(sizeof(struct Polynomial))。headnext=NULL。for(i=0。i{p=(Polyn)malloc(sizeof(struct Polynomial))。//建立新結點以接收數(shù)據(jù)printf(“請輸入第%d項的系數(shù)與指數(shù):”,i+1)。scanf(“%f %d”,amp。pcoef,amp。pexpn)。Insert(p,head)。//調(diào)用Insert函數(shù)插入結點}return head。} //銷毀多項式p void Destroy(Polyn p){Polyn q1,q2。q1=pnext。8q2=q1next。while(q1next){free(q1)。q1=q2。//指針后移q2=q2next。} } //輸出多項式p int Print(Polyn P){Polyn q=Pnext。int flag=1。//項數(shù)計數(shù)器if(!q)//若多項式為空,輸出0{putchar(39。039。)。printf(“n”)。return。}while(q){if(qcoef0amp。amp。flag!=1)putchar(39。+39。)。//系數(shù)大于0且不是第一項 9if(qcoef!=1amp。amp。qcoef!=1)//系數(shù)非1或1的普通情況{printf(“%g”,qcoef)。if(qexpn==1)putchar(39。X39。)。else if(qexpn)printf(“X^%d”,qexpn)。}else{if(qcoef==1){if(!qexpn)putchar(39。139。)。else if(qexpn==1)putchar(39。X39。)。else printf(“X^%d”,qexpn)。}if(qcoef==1){if(!qexpn)printf(“1”)。else if(qexpn==1)printf(“X”)。else printf(“X^%d”,qexpn)。}}q=qnext。flag++。}printf(“n”)。} int pare(Polyn a,Polyn b){if(aamp。amp。b){if(!b||aexpnbexpn)return 1。else if(!a||aexpnexpn)return1。else return 0。}else if(!aamp。amp。b)return1。//a多項式已空,但b多項式非空else return 1。//b多項式已空,但a多項式非空 } //求解并建立多項式a+b,返回其頭指針 Polyn Add(Polyn pa,Polyn pb){Polyn qa=panext。Polyn qb=pbnext。Polyn headc,hc,qc。hc=(Polyn)malloc(sizeof(struct Polynomial))。//建立頭結點 11hcnext=NULL。headc=hc。while(qa||qb){qc=(Polyn)malloc(sizeof(struct Polynomial))。switch(pare(qa,qb)){case 1:qccoef=qacoef。qcexpn=qaexpn。qa=qanext。break。case 0:qccoef=qacoef+qbcoef。qcexpn=qaexpn。qa=qanext。qb=qbnext。break。case1:qccoef=qbcoef。qcexpn=qbexpn。qb=qbnext。break。12}if(qccoef!=0){qcnext=hcnext。hcnext=qc。hc=qc。}else free(qc)。//當相加系數(shù)為0時,釋放該結點}return headc。} //求解并建立多項式ab,返回其頭指針 Polyn Subtract(Polyn pa,Polyn pb){Polyn h=pb。Polyn p=pbnext。Polyn pd。while(p)//將pb的系數(shù)取反{ pcoef*=1。p=pnext。}pd=Add(pa,h)。for(p=hnext。p。p=pnext)//恢復pb的系數(shù)pcoef*=1。13return pd。} //求解并建立多項式a*b,返回其頭指針 Polyn Multiply(Polyn pa,Polyn pb){Polyn hf,pf。Polyn qa=panext。Polyn qb=pbnext。hf=(Polyn)malloc(sizeof(struct Polynomial))。//建立頭結點hfnext=NULL。for(。qa。qa=qanext){for(qb=pbnext。qb。qb=qbnext){
點擊復制文檔內(nèi)容
教學教案相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1