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

正文內容

數據結構課程設計選題-在線瀏覽

2024-10-17 05:58本頁面
  

【正文】 Polyn pa,Polyn pb)求解并建立多項式ab,Polyn Subtract(Polyn pa,Polyn pb)2求解并建立多項式a*b,Polyn Multiply(Polyn pa,Polyn pb)求解并建立多項式a/b,void Device(Polyn pa,Polyn pb)輸出函數輸出多項式,void Print(Polyn P)銷毀多項式函數釋放內存,void Destroy(Polyn p)主函數,void main()主程序的流程基函數調用說明(1)typedef struct Polynomial {float coef。struct Polynomial *next。在這個結構體變量中coef表示每一項前的系數,expn表示每一項的指數,polyn為結點指針類型,屬于抽象數據類型通常由用戶自行定義,Polynomial表示的是結構體中的數據對象名。為輸入的多項式申請足夠的存儲空間p=(Polyn)malloc(sizeof(struct Polynomial))。調用Insert函數插入結點這就建立一元多項式的關鍵步驟(3)由于多項式的系數和指數都是隨即輸入的,所以根據要求需要對多項式按指數進行降冪排序。(4)加、減、乘、除、的算法實現:在該程序中,最關鍵的一步是實現四則運算和輸出,由于加減算法原則是一樣,減法可通過系數為負的加法實現;對于乘除算法的大致流程都是:首先建立多項式a*b,a/b,然后使用鏈表存儲所求出的乘積,商和余數。(5)另一個子函數是輸出函數 PrintPolyn();輸出最終的結果,算法是將最后計算合并的鏈表逐個結點依次輸出,便得到整鏈表,也就是最后的計算式計算結果。四、程序新點通過多次寫程序,發(fā)現在程序在控制臺運行時總是黑色的,本次寫程序就想著改變一下,于是經過查資料利用system(“Color E0”)。五、設計中遇到的問題及解決辦法首先是,由于此次課程設計里使用指針使用比較多,自己在指針多的時候易腦子混亂出錯,對于此問題我是采取比較笨的辦法在稿紙上寫明白后開始進行 4代碼編寫。最后是,前期分析不足開始急于寫代碼,中途出現各種問題,算是給自己以后設計時的一個經驗吧。而且對于數據結構的相關算法和函數的調用方面知識的加深。八、指導老師評語及成績附錄:(課程設計代碼)include include include typedef struct Polynomial {float coef。struct Polynomial *next。//Polyn為結點指針類型 void Insert(Polyn p,Polyn h){if(pcoef==0)free(p)。q1=h。while(q2amp。pexpnexpn)//查找插入位置{q1=q2。}if(q2amp。pexpn==q2expn)//將指數相同相合并 {q2coef+=pcoef。if(!q2coef)//系數為0的話釋放結點{ q1next=q2next。}}else { pnext=q2。}//指數為新時將結點插入} 7} //建立一個頭指針為head、項數為m的一元多項式 Polyn Create(Polyn head,int m){int i。p=head=(Polyn)malloc(sizeof(struct Polynomial))。for(i=0。//建立新結點以接收數據printf(“請輸入第%d項的系數與指數:”,i+1)。pcoef,amp。Insert(p,head)。} //銷毀多項式p void Destroy(Polyn p){Polyn q1,q2。8q2=q1next。q1=q2。} } //輸出多項式p int Print(Polyn P){Polyn q=Pnext。//項數計數器if(!q)//若多項式為空,輸出0{putchar(39。)。return。amp。+39。//系數大于0且不是第一項 9if(qcoef!=1amp。qcoef!=1)//系數非1或1的普通情況{printf(“%g”,qcoef)。X39。else if(qexpn)printf(“X^%d”,qexpn)。139。else if(qexpn==1)putchar(39。)。}if(qcoef==1){if(!qexpn)printf(“1”)。else printf(“X^%d”,qexpn)。flag++。} int pare(Polyn a,Polyn b){if(aamp。b){if(!b||aexpnbexpn)return 1。else return 0。amp。//a多項式已空,但b多項式非空else return 1。Polyn qb=pbnext。hc=(Polyn)malloc(sizeof(struct Polynomial))。headc=hc。switch(pare(qa,qb)){case 1:qccoef=qacoef。qa=qanext。case 0:qccoef=qacoef+qbcoef。qa=qanext。break。qcexpn=qbexpn。break。hcnext=qc。}else free(qc)。} //求解并建立多項式ab,返回其頭指針 Polyn Subtract(Polyn pa,Polyn pb){Polyn h=pb。Polyn pd。p=pnext。for(p=hnext。p=pnext)//恢復pb的系數pcoef*=1。} //求解并建立多項式a*b,返回其頭指針 Polyn Multiply(Polyn pa,Polyn pb){Polyn hf,pf。Polyn qb=pbnext。//建立頭結點hfnext=NULL。qa。qb。pfcoef=qacoef*qbcoef。Insert(pf,hf)。}//求解并建立多項式a/b,返回其頭指針 void Device(Polyn pa,Polyn pb){Polyn hf,pf,temp1,temp2。Polyn qb=pbnext。//建立頭結點,存儲商hfnext=NULL。//建立頭結點,存儲余數pfnext=NULL。temp1next=NULL。temp2next=NULL。while(qa!=NULLamp。qaexpn=qbexpn){temp2next=(Polyn)malloc(sizeof(struct Polynomial))。temp2nextexpn=(qaexpn)(qbexpn)。pa=Subtract(pa,Multiply(pb,temp2))。temp2next=NULL。pb=temp1。Print(hf)。Print(pf)。int m,n,flag=0。Polyn pa=0,pb=0,pc,pd,pf。scanf(“%d”,amp。printf(“n”)。//建立多項式A printf(“n”)。16scanf(“%d”,amp。printf(“n”)。//建立多項式B printf(“n”)。printf(“*多項式操作菜單printf(”**********************************************n“)。printf(”tt “)。printf(”tt “)。printf(”tt “)。while(choose){printf(”執(zhí)行操作:“)。flag)。Print(pa)。printf(“多項式B(x):”)。break。printf(“多項式A(x)+B(x):”)。Destroy(pc)。case 3:pd=Subtract(pa,pb)。Print(pd)。break。printf(“多項式A(x)*B(x):”)。Destroy(pf)。case 5:Device(pa,pb)。case 6:exit(0)。} }Destroy(pa)。}第三篇:數據結構課程設計數據結構課程設計設計一個利用赫夫曼算法的編碼和譯碼系統(tǒng),重復地顯示并處理以下項目,直到選擇退出為止。代碼如下:include include include include define N 200typedef struct HTNode//結構體 { int Weight。int Parent,Lchild,Rchild。typedef char * * HCode。int i。return。iif(fwrite(amp。fclose(fp)。printf(“保存成功!”)。char c。kif(k{printf(“n請輸入權值和字符(用空格隔開): ”)。w)。c)。HT[k].Weight=w。HT[k].Parent=HT[k].Lchild=HT[k].Rchild=0。for(k=n+1。p2=0。w2=32767。j{if(HT[j].Parent==0){if(HT[j].Weight{w2=w1。w1=HT[j].Weight。}else if(
點擊復制文檔內容
教學教案相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1