




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)實驗報告——實驗三
實驗題目:排序算法學(xué)號:日期:2014.11.26班級:物聯(lián)網(wǎng)工程姓名:Email:實驗?zāi)康模壕€性表操作任務(wù)要求:
1掌握線性表的基本操作。2、使用鏈表存儲。3、自表首插入元素,刪除一個指定元素,查找指定元素。軟件環(huán)境:Win7操作系統(tǒng)開發(fā)工具:visualC++6.0實驗步驟:#include<iostream>#include<conio.h>#defineLENsizeof(LNode)//定義LEN為一個節(jié)點的長度usingnamespacestd;enumBOOL{False,True};//定義BOOL型typedefstructnode{intdata;//數(shù)據(jù)域structnode*next;//指向下一個節(jié)點的指針}LNode,*LinkList;voidCreatList(LinkList&,int);//生成一個單鏈表BOOLListInsert(LinkList&,int,int);//在單鏈表首中插入一個元素BOOLListDelete(LinkList&,int,int&);//在單鏈表中刪除一個元素BOOLListFind_keyword(LinkList,int,int&);//按關(guān)鍵字查找一個元素BOOLListFind_order(LinkList,int&,int);//按序號查找一個元素voidListPrint(LinkList);//顯示單鏈表所有元素voidmain(){LinkListL;BOOLtemp;intnum,loc,ch,j,flag=1;//---------------------程序解說-----------------------cout<<"本程序?qū)崿F(xiàn)鏈?zhǔn)浇Y(jié)構(gòu)的線性表的操作。"<<endl;cout<<"可以進(jìn)行插入,刪除,定位,查找等操作。"<<endl;//----------------------------------------------------cout<<"請輸入初始時鏈表長度:"<<endl;//輸入生成單鏈表時的元素個數(shù)cin>>num;cout<<endl;CreatList(L,num);//生成單鏈表ListPrint(L);while(flag){cout<<"請選擇:"<<endl;cout<<"1.顯示所有元素:"<<endl;//顯示鏈表元素cout<<"2.表首插入一個元素:"<<endl;//表首插入鏈表元素cout<<"3.按序號刪除一個元素:"<<endl;//按序號刪除鏈表元素cout<<"4.按關(guān)鍵字查找元素:"<<endl;//按關(guān)鍵字查找cout<<"5.按序號查找元素:"<<endl;//按序號查找cout<<"6.按關(guān)鍵字刪除元素:"<<endl;//按關(guān)鍵字刪除cout<<"7.程序退出"<<endl;cin>>j;cout<<endl;switch(j){case1:ListPrint(L);break;case2:{cout<<"請輸入元素:"<<endl;cin>>ch;//輸入要插入的元素 intloc=1; temp=ListInsert(L,loc,ch);//插入if(temp==False)cout<<"插入失敗!"<<endl;//插入失敗 elsecout<<"插入成功!"<<endl;//成功插入 ListPrint(L); break; }case3:cout<<"請輸入要刪除的元素所在位置:"<<endl;cin>>loc;//輸入要刪除的節(jié)點的位置 cout<<endl; temp=ListDelete(L,loc,ch);//刪除loc=1; if(temp==False)cout<<"刪除失敗!"<<endl;//刪除失敗elsecout<<"成功刪除了一個元素:"<<ch<<endl;//刪除成功,顯示該元素 ListPrint(L); break;case4:if(L->next==NULL)//鏈表為空 cout<<"鏈表為空!"<<endl;else{cout<<"請輸入要查找的元素:"<<endl;cin>>ch;cout<<endl;//輸入要查找的元素 temp=ListFind_keyword(L,ch,loc);//按關(guān)鍵字查找if(temp==False)cout<<"沒有找到該元素!"<<endl;//查找失敗 elsecout<<"該元素在鏈表的第"<<loc<<"個位置。"<<endl;//成功查找,顯示該元素位置 } break;case5:if(L->next==NULL)//鏈表為空 cout<<"鏈表為空!"<<endl;else{cout<<"請輸入要查找的位置:"<<endl;cin>>loc;//輸入要查找的元素的位置 temp=ListFind_order(L,ch,loc);//按序號查找if(temp==False)cout<<"該位置不存在!"<<endl;//查找失敗 elsecout<<"第"<<loc<<"個元素是"<<ch<<endl;//成功查找,顯示該元素 } break; case6:if(L->next==NULL)//鏈表為空 cout<<"鏈表為空!"<<endl;else{cout<<"請輸入要刪除的元素:"<<endl;cin>>ch;cout<<endl;//輸入要查找的元素 temp=ListFind_keyword(L,ch,loc);//按關(guān)鍵字查找if(temp==False)cout<<"沒有找到該元素!"<<endl;//查找失敗 elsecout<<"該元素在鏈表的第"<<loc<<"個位置。"<<endl;//成功查找,顯示該元素位置inttemp=ListDelete(L,loc,ch);cout<<"成功刪除了一個元素:"<<ch<<endl;//刪除成功,顯示該元素 ListPrint(L); } break; default:flag=0;cout<<"程序結(jié)束,按任意鍵退出!"<<endl;}}getchar();}voidCreatList(LinkList&v,intn){//生成一個帶頭結(jié)點的有n個元素的單鏈表 inti;LinkListp;v=(LinkList)malloc(LEN);//生成頭結(jié)點v->next=NULL;cout<<"putin"<<n<<"numbers"<<endl;for(i=n;i>0;--i){p=(LinkList)malloc(LEN);//生成新結(jié)點cin>>p->data;p->next=v->next;v->next=p;}}BOOLListInsert(LinkList&v,inti,inte){//在單鏈表的第i各位置插入元素e,成功返回True,失敗返回False LinkListp,s; intj=0; p=v;while(p&&j<i-1){p=p->next;++j;}//查找第i-1個元素的位置if(!p||j>i-1)returnFalse;//沒有找到s=(LinkList)malloc(LEN);//生成一個新結(jié)點s->data=e;s->next=p->next;//將新結(jié)點插入到單鏈表中p->next=s;returnTrue;}BOOLListDelete(LinkList&v,inti,int&e){//在單鏈表中刪除第i個元素,成功刪除返回True,并用e返回該元素值,失敗返回False LinkListp,q; intj=0; p=v;while(p->next&&j<i-1)//查找第i-1個元素位置{p=p->next;++j;}if(!(p->next)||j>i-1)returnFalse;//查找失敗q=p->next;p->next=q->next;//刪除該元素e=q->data;//e取得該元素值free(q);//釋放該元素空間returnTrue;}BOOLListFind_keyword(LinkListv,inte,int&i){//在單鏈表中查找關(guān)鍵字為e的元素,成功返回True,并用i返回該元素位置,//失敗返回Falsei=1;LinkListp;p=v->next;while((p->data!=e)&&(p->next!=NULL))//p指針指向下一個,直到{p=p->next;i++;}//找到或到鏈表尾為止if(p->data!=e)//該元素在鏈表中不存在 returnFalse;elsereturnTrue;}BOOLListFind_order(LinkListv,int&e,inti){//在單鏈表中查找第i個元素,成功返回True,并用e返回該元素值,//失敗返回False LinkListp; intj=0; p=v;while(p->next&&j<i)//移動指針,直到找到第i個元素{p=p->next;++j;}if(j!=i)return
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川體育職業(yè)學(xué)院《化工設(shè)計概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 華南農(nóng)業(yè)大學(xué)《化工程序設(shè)計基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東中醫(yī)藥高等專科學(xué)校《大數(shù)據(jù)分析計算》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川電力職業(yè)技術(shù)學(xué)院《英國文學(xué)史及作品選讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安財經(jīng)大學(xué)行知學(xué)院《人物語言造型》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西生物科技職業(yè)學(xué)院《城市交通規(guī)劃》2023-2024學(xué)年第二學(xué)期期末試卷
- 郴州職業(yè)技術(shù)學(xué)院《nux系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南昌理工學(xué)院《工程制圖與AUTOCAD》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北醫(yī)藥學(xué)院藥護(hù)學(xué)院《海洋環(huán)境保護(hù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 桂林師范高等專科學(xué)校《云計算技術(shù)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年5月12日全國防災(zāi)減災(zāi)日主題宣教課件
- 9E燃機(jī)系統(tǒng)培訓(xùn)演3.25
- 2022年山東省臨沂市中考生物試題及答案解析
- 《紅樓夢:金陵十二釵判詞賞析》示范PPT課件
- 起重信號工、司索工安全教育培訓(xùn)試題帶答案
- 廢舊塑料回收再生資源利用項目建議書
- 玻璃纖維生產(chǎn)工藝流程培訓(xùn)
- 無砟軌道底座板首件施工總結(jié)(最新)
- 作文紙模板帶字?jǐn)?shù)
- (完整word版)機(jī)械制造工藝學(xué)教案
- 吉爾吉斯斯坦共和國公司法
評論
0/150
提交評論