版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目(程序?qū)崿F(xiàn)采用C語(yǔ)言)題目1:猴子選王(學(xué)時(shí):3)一堆猴子都有編號(hào),編號(hào)是1,2,3m,這群猴子(m個(gè))按照1-m的順序圍坐一圈,從第1開(kāi)始數(shù),每數(shù)到第n個(gè),該猴子就要離開(kāi)此圈,這樣依次下來(lái),直到圈中只剩下最后一只猴子,則該猴子為大王。要求:m及n要求從鍵盤(pán)輸入,存儲(chǔ)方式采用向量及鏈表兩種方式實(shí)現(xiàn)該問(wèn)題求解。n");return;n",position+1);ame,&stuffi.department,&stuffi.basepay,&stuffi.allowance);if(fp=fopen("",&quo
2、t;wb")尸NULL)printf("Can'topenfile'n");return0;for(i=0;i<SIZE;i+)if(fwrite(&stuffi,LENTH,1,fp)!=1)printf("文件寫(xiě)入出錯(cuò)n");fclose(fp);if(fp=fopen("","rb")=NULL)printf("Can'topenfile'n");printf("修改過(guò)后的結(jié)果:n");for(i=0;i<S
3、IZE;i+)fread(&stuffi,LENTH,1,fp);stuffi.total=stuffi.basepay+100+stuffi.allowance;printf("%-10s%-10s%f%f%fn",,stuffi.department,stuffi.basepay+100,stuffi.allowance,stuffi.total);fclose(fp);return0;題目4:滿(mǎn)足條件的有序表生成(學(xué)時(shí):3)已知三個(gè)有序表A、RC,它們皆由同一類(lèi)元素才成,現(xiàn)要求對(duì)于表A作以下運(yùn)算而獲得有序表D:排出A中所有的既在B中又在C
4、中出現(xiàn)的元素。另外該任務(wù)要求具有建立有序表功能以及輸出有序表到屏幕的功能。#include<>voidmain()inta7,b5,c6,d7;inti,j,k,t,m;printf("nPleaseenter7numbersofA:");for(i=0;i<7;i+)scanf("%d",&ai);for(j=0;j<6;j+)for(i=0;i<6-j;i+)if(ai>ai+1)t=ai;ai=ai+1;ai+1=t;printf("thesortednumbers:n");for(i
5、=0;i<7;i+)printf("%5d",ai);printf("nPleaseenter5numbersofB:");for(i=0;i<5;i+)scanf("%d",&bi);printf("n");for(j=0;j<4;j+)for(i=0;i<4-j;i+)if(bi>bi+1)t=bi;bi=bi+1;bi+1=t;printf("thesortednumbers:n");for(i=0;i<5;i+)printf("%5d
6、",bi);printf("nPleaseenter6numbersofC:");for(i=0;i<6;i+)scanf("%d",&ci);for(j=0;j<5;j+)for(i=0;i<5-j;i+)if(ci>ci+1)t=ci;ci=ci+1;ci+1=t;printf("thesortednumbers:n");for(i=0;i<6;i+)printf("%5d",ci);printf("n");for(i=0;i<5;i+)
7、for(j=0;j<6;j+)if(bi=cj)if(bi=ak)ak=m;printf("n");k=0;for(i=0;i<7;i+)if(ai!=m)dk=ai;k+;printf("生成的有序表d為");for(i=0;i<k;i+)printf("%4d",di);printf("n");題目5:一元多項(xiàng)式的減法(學(xué)時(shí):6)設(shè)有兩個(gè)一元多項(xiàng)式A(x),B(x),請(qǐng)完成運(yùn)算A(x)+B(x)、A(x)-B(x),要求多項(xiàng)式采用鏈表進(jìn)行存儲(chǔ)。另外該任務(wù)要求具有建立多項(xiàng)式鏈表以及輸出多項(xiàng)式到屏
8、幕的功能。#include<>structPolynodeintcoef;intexp;Polynode*next;Polynode,*Polylist;voidPolycreate(Polylisthead)Polynode*rear,*s;intc,e;rear=head;printf("請(qǐng)輸入多項(xiàng)式的系數(shù)項(xiàng)和指數(shù)項(xiàng)");scanf("%d,%d",&c,&e);while(c!=0)s=(Polynode*)malloc(sizeof(Polynode);s->coef=c;s->exp=e;rear->
9、;next=s;rear=s;scanf("%d,%d",&c,&e);rear->next=NULL;voidPolyadd(Polylistpolya,Polylistpolyb)Polynode*p,*q,*tail,*temp;intsum;p=polya->next;q=polyb->next;tail=polya;while(p!=NULL&&q!=NULL)if(p->exp<q->exp)tail->next=p;tail=p;p=p->next;)elseif(p->ex
10、p=q->exp)(sum=p->coef+q->coef;if(sum!=0)(p->coef=sum;tail->next=p;tail=p;p=p->next;temp=q;q=q->next;free(temp);)else(temp=p;p=p->next;free(temp);q=q->next;free(temp);)else(tail->next=q;tail=q;q=q->next;if(p!=NULL)tail->next=p;elsetail->next=q;voidPolysubstract(
11、Polylistpolya,Polylistpolyb)Polylisth=polyb;Polylistp=pb->next;Polylistpd;while(p)p->coef*=-1;p=p->next;pd=Polyadd(pa,h);for(p=h->next;p;p=p->next)p->coef*=-1;returnpd;voidPrintPolyn(PolynP)voidprintfPolyn(Polynode*head)Polynode*p=head->next;while(p)printf("%dxA%d",p-&
12、gt;coef,p->exp);if(p->next)printf("+");p=p->next;intmain()Polynode*La,Lb;La=Polycreate();Lb=Polycreate();PrintPolyn(La);printf("/n");PrintPolyn(Lb);printf("/n");Polyadd(polya,polyb);printPolyn(polya);return0;題目6:床位分配(學(xué)時(shí):6)某客店有N個(gè)等級(jí)的房間,第k級(jí)客房有A(k)個(gè),每個(gè)房間有B(k)個(gè)單人床,以
13、菜單調(diào)用方式設(shè)計(jì)為單身旅客分配床位以及離店時(shí)收回床位的程序。要求分配成功時(shí),印出旅客姓名、年齡、性別、到達(dá)日期、客房等級(jí)、房間號(hào)及床位號(hào);分配不成功時(shí),允許更改房間等級(jí),若不更改等級(jí),印出“滿(mǎn)客”提示。#include<>#include<>#include<>#include<>#defineN3typedefstructRoomintroomlevel;introomnum;intbednum;intpeoplenum;intbedN;intsex;charname10;structRoom*next;Room;Room*creat(intr
14、oomlevel,introom,intbed)Room*head,*p,*q;inti=1,j,h,num=1;head=(Room*)malloc(sizeof(Room);head->peoplenum=0;q=head;while(i<=roomlevel)for(j=1;j<=roomi;j+)p=(Room*)malloc(sizeof(Room);p->peoplenum=0;p->roomlevel=i;p->roomnum=num+;p->sex=-1;for(h=0;h<bedi;h+)p->bedh=0;q->n
15、ext=p;q=p;i+;p->next=NULL;return(head);voidInit(Room*head)Room*p;inti;p=head;while(p!=NULL)p->peoplenum=0;p->sex=-1;for(i=0;i<N;i+)p->bedi=0;p=p->next;printf("nn操作成功n");voidGetin(Room*head)Room*p;inti,s,lev,age;charname10;intnumber=0;intbednumber=0;printf("nn歡迎使用訂房系統(tǒng)
16、nn");printf("請(qǐng)輸入性別(1為男,2為女):");scanf("%d",&s);printf("nn請(qǐng)輸入想入住的房間等級(jí):");scanf("%d",&lev);p=head->next;while(p!=NULL)if(p->roomlevel=lev)&&(p->sex=s)|(p->sex=-1)for(i=0;i<lev;i+)if(p->bedi=0)number=p->roomnum;bednumber=i
17、+1;p->bedi=1;p->sex=s;p->peoplenum+;break;if(number!=0)break;p=p->next;if(number=0&&bednumber=0)printf("n滿(mǎn)客n");elsehead->peoplenum+;printf("n訂單已下,請(qǐng)輸入客人信息:n");printf("名字:n");scanf("%s",name);printf("年齡:n");scanf("%d",&
18、amp;age);printf("您的訂單3:n");printf("名字年齡性別到達(dá)時(shí)間房間等級(jí)房間床位n");if(s=1)11-19%dprintf("%s%d%dmale%dn",name,age,p->roomlevel,p->roomnum,bednumber);else11-19%dprintf("%s%d%dformale%dn",name,age,p->roomlevel,p->roomnum,bednumber);printf("n");voidChe
19、ckout(Room*head)Room*p;intnumber,bednumber,i,s;printf("歡迎使用退房系統(tǒng):");printf("nn請(qǐng)輸入房間號(hào):");scanf("%d",&number);printf("nn請(qǐng)輸入性別(1為男,0為女):");scanf("%d",&s);printf("請(qǐng)輸入床位號(hào):");scanf("%d",&bednumber);p=head->next;while(p!=NU
20、LL)if(p->roomnum=number)for(i=0;i<p->roomlevel;i+)if(i+1=bednumber)p->bedi=0;p->peoplenum-;if(p->peoplenum<0)p->peoplenum=0;if(p->peoplenum=0)p->sex=-1;printf("您已退房,歡迎下次光臨");break;p=p->next;voidDisplay(Room*head)Room*p;inti=0;p=head->next;printf("nn
21、已訂房間查詢(xún)");if(head->peoplenum=NULL)printf("所有等級(jí)房間空房");return;while(p->peoplenum!=NULL)if(p->sex=1)printf("n房間號(hào):d,房間等級(jí):d,已住人數(shù):d,住房人性別:男,p->roomnum,p->roomlevel,p->peoplenum);elseprintf("n房間號(hào):d,房間等級(jí):d,已住人數(shù):d,住房人性別:女,p->roomnum,p->roomlevel,p->peoplenum
22、);while(i<p->peoplenum)if(p->bedi=1)printf(",已住床位號(hào):%d",i+1);i+;printf("n");p=p->next;voidmain()intn,k=1,i,roomlevel,room10,bed10,sum=0;Room*head;printf("請(qǐng)輸入房間等級(jí)數(shù):n");printf("Roomlevel:");scanf("%d",&roomlevel);for(i=1;i<=roomlevel;
23、i+)printf("n%d等級(jí)房間數(shù):",i);scanf("%d",&roomi);printf("n%d房間內(nèi)床位數(shù):",i);scanf("%d",&bedi);sum+=roomi*bedi;head=creat(roomlevel,room,bed);while(k=1)printf("n歡迎光臨:n");printf("1:訂房n2:退房n3:查詢(xún)n4:退出系統(tǒng)n");printf("請(qǐng)輸入您的選擇:n");scanf(&qu
24、ot;%d",&n);switch(n)case 1: Getin(head);break;case 2: Checkout(head);break;case 3: Display(head);break;case 4: k=0;break;default:printf("Error!pleaseinputagain:");break;題目7:文本文件單詞的檢索及計(jì)數(shù)(學(xué)時(shí):6)要求編程建立一個(gè)文本文件,每個(gè)單詞不包括空格及跨行,單詞由字符序列構(gòu)成且區(qū)分大小寫(xiě),完成以下功能:統(tǒng)計(jì)給定單詞在文本文件中出現(xiàn)的總次數(shù)、檢索輸出某單詞在文本文件中首次出現(xiàn)的行號(hào)及位
25、置。#include<>#include<>#include<>typedefstructStringWordcharch100;SW;voidCreatTextFile()charfilename10,ch;FILE*fp;printf("請(qǐng)輸入所用的文件名:");scanf("n%s",filename);fp=fopen(filename,"w");printf("請(qǐng)輸入一段文字,以$號(hào)結(jié)束:n");scanf("%s",&ch);while(c
26、h!='$')fwrite(&ch,sizeof(ch),1,fp);scanf("%c",&ch);fclose(fp);voidCountWord()FILE*fp;SWS,T;charch;charfilename10;inti=0,number=0;printf("輸入文本文件名:");scanf("%s",filename););fp=fopen(filename,"r");printf("輸入要統(tǒng)計(jì)計(jì)數(shù)的單詞:scanf("%s",;whil
27、e(!feof(fp)ch=fgetc(fp);if(ch='')if(i!=0)i='0'i=0;if(strcmp,=0)number+;elseif(ch='n')if(i!=0)i='0'i=0;if(strcmp,=0)number+;elsei=ch;i+;if(number=0)printf("單詞不在文本中n");elseprintf("單詞s在文件s中共出現(xiàn)了d次二,filename,number);fclose(fp);voidSearchWord()FILE*fp;SWS,T;c
28、harfilename10;inti,i_r,line,flag=0;charch;printf("n輸入文本文件名:");scanf("%s",filename);fp=fopen(filename,"r");printf("輸入要統(tǒng)計(jì)計(jì)數(shù)的單詞:");scanf("%s",;i=i_r=0;line=1;while(!feof(fp)ch=fgetc(fp);if(ch='')if(i!=0)i_r+;i='0'i=0;if(strcmp,=0)printf(
29、"%s單詞第一次出現(xiàn)是在flag=1;break;elseif(ch='n')if(i!=0)i_r+;i='0'if(strcmp,=0)printf("%s單詞第一次出現(xiàn)是在flag=1;break;i=0;i_r=0;line+;%d 行 ,%d 列 n",line,i_r);%d 行 ,%d 列 n",line,i_r);elseline+;i_r=0;elsei=ch;i+;if(flag=0)printf("%s單詞不在文本中n",;fclose(fp);intmain()CreatText
30、File();CountWord();SearchWord();題目8:二叉樹(shù)的遍歷(學(xué)時(shí):6)二叉樹(shù)以lson-rson鏈接方式存儲(chǔ),以菜單方式設(shè)計(jì)并完成功能任務(wù):建立并存儲(chǔ)樹(shù)、輸出前序遍歷結(jié)果、輸出中序遍歷結(jié)果、輸出后序遍歷結(jié)果、交換左右子樹(shù)、統(tǒng)計(jì)高度,其中對(duì)于中序、后序的遍歷運(yùn)算要求采用非遞歸方式。#include<>#include<>#defineM100typedefstructnodeha='A'counter2.cha='B'counter3.cha='C'counter4.cha='D'c
31、ounter5.cha='E'counter6.cha='F'counter7.cha='G'counter8.cha='H'counter9.cha='I'counter10.cha='J'counter11.cha='K'counter12.cha='L'counter13.cha='M'counter14.cha='N'counter15.cha='O'counter16.cha='P'counte
32、r17.cha='Q'counter18.cha='R'counter19.cha='S'counter20.cha='T'counter21.cha='U'counter22.cha='V'counter23.cha='W'counter24.cha='X'counter25.cha='Y'counter26.cha='Z'for(i=1;i<=26;i+)counteri.number=0;while(ch!='
33、9;)switch(ch)case'A':counter1.number+;break;case'B':counter2.number+;break;case'C':counter3.number+;break;case'D':counter4.number+;break;case'E':counter5.number+;break;case'F':counter6.number+;break;case'G':counter7.number+;break;case'H'
34、;:counter8.number+;break;case'I':counter9.number+;break;case'J':counter10.number+;break;case'K':counter11.number+;break;case'L':counter12.number+;break;case'M':counter13.number+;break;case'N':counter14.number+;break;case'O':counter15.number+;br
35、eak;case'P':counter16.number+;break;case'Q':counter17.number+;break;case'R':counter18.number+;break;case'S':counter19.number+;break;case'T':counter20.number+;break;case'U':counter21.number+;break;case'V':counter22.number+;break;case'W':
36、counter23.number+;break;case'X':counter24.number+;break;case'Y':counter25.number+;break;case'Z':counter26.number+;break;scanf("%c",&ch);for(i=1;i<=26;i+)if(counteri.number!=0)hts.weight=counteri.number;hts.ch=counteri.cha;s+;s=s-1;returns;voidselect(HTNodeht,
37、intq,int*p1,int*p2)arent=0)x=j;break;for(i=j+1;i<=q;+i)if(hti.weight<htx.weight&&hti.parent=0)x=i;arent=0&&x!=j)y=j;break;for(i=j+1;i<=q;+i)if(hti.weight<hty.weight&&hti.parent=0&&x!=i)y=i;eight=hti.weight;elsehti.weight=0;hti.parent=hti.lchild=hti.rchild=
38、0;for(i=s+1;i<=a;+i)arent=i;htp2.parent=i;hti.lchild=p1;hti.rchild=p2;hti.weight=htp1.weight+htp2.weight;voidhuffman_show(CodeNodehc,HTNodeht,ints)arent;f;c=f,f=htf.parent)if(htf.lchild=c)q-p='0'elseq-p='1'strcpy(hci.bits,&qp);hci.ch=hti.ch;h;while(ch!=ah)i+;ah=hci.ch;printf(&
39、quot;%s",hci.bits);scanf("%c",&ch);i=1;child;elsei=hti.rchild;if(hti.lchild=0)printf("%c",hti.ch);j=i;i=t;scanf("%c",&b);intmain()intflag=1,choice;ints,i;HTNodehtm;CodeNodehcn;printf("霍夫曼樹(shù):n");s=Init(ht);huffman_setup(ht,s);huffman_show(hc,ht,s);f
40、or(i=1;i<=s;i+)printf("%c->%sn",hci.ch,hci.bits);while(flag)printf("請(qǐng)輸入您想要進(jìn)行的操作:n1編碼n2解碼n3退出n");fflush(stdin);scanf("%d",&choice);switch(choice)case 1:huffman_code(hc);printf("n");break;case 2:huffman_read(ht,s);printf("n");break;case 3:fla
41、g=0;return0;題目11:關(guān)鍵路徑尋找(學(xué)時(shí):6)對(duì)于給定的一個(gè)工程施工圖,該圖以邊為單位從鍵盤(pán)輸入,編寫(xiě)能夠找出該圖的關(guān)鍵路徑的程序。#include<>#include<>structNodeex2=i;Ai.id=0;Ai.link=NULL;for(k=1;k<=e;k+)ink;Ai.link=p;for(i=1;i<=n;i+)ink;while(p!=NULL)k=p->vex;Ak.id=Ak.id+1;p=p->next;voidfind(structHnodeA20,intn)inti,j,m,front,rear;intk=0;intve20,vl20,e20,l20;inttpord20;structNode*p;for(i=1;i<=n;i+)d=0)ink;while(p!=NULL)k=p->vex;Ak.id=Ak.id-1;d=0)rear+;tpordrear=k;p=p->next;if(m<n)!");printf("n網(wǎng)中存在回路,不能進(jìn)行拓?fù)渑判騬eturn;for(i=1;i<=n;i+)vli=ven;ink;while(p!=NULL)k=p->vex;if(vlk-
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司租車(chē)協(xié)議書(shū)正規(guī)模板5篇
- 高原紅病因介紹
- 關(guān)于技術(shù)轉(zhuǎn)讓的協(xié)議
- 雀斑樣痣病因介紹
- 中考政治復(fù)習(xí)知識(shí)專(zhuān)題八七下第四單元做學(xué)法尊法守法的人
- 2023年順酐項(xiàng)目融資計(jì)劃書(shū)
- 《MLCC制程介紹》課件
- 機(jī)械制圖測(cè)試題含答案
- 養(yǎng)老院老人生活?yuàn)蕵?lè)活動(dòng)組織人員職業(yè)發(fā)展規(guī)劃制度
- 養(yǎng)老院老人健康監(jiān)測(cè)報(bào)告制度
- GB/T 36652-2018TFT混合液晶材料規(guī)范
- 國(guó)際商務(wù)談判 袁其剛課件 第四章-國(guó)際商務(wù)談判的結(jié)構(gòu)和過(guò)程
- 國(guó)際商法教案(20092新版)
- 江蘇開(kāi)放大學(xué)漢語(yǔ)作為第二語(yǔ)言教學(xué)概論期末復(fù)習(xí)題
- 貨物質(zhì)量保證措施
- 工作簡(jiǎn)化方法改善與流程分析課件
- 國(guó)家開(kāi)放大學(xué)《管理學(xué)基礎(chǔ)》形考任務(wù)1-4參考答案
- 道德與法治《健康看電視》優(yōu)秀課件
- 急性胰腺炎完整版課件
- 雙絞線(xiàn)鏈路測(cè)試報(bào)告
- 《建筑工程類(lèi)別劃分標(biāo)準(zhǔn)》-全
評(píng)論
0/150
提交評(píng)論