版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)2鏈表驗(yàn)證實(shí)驗(yàn)實(shí)驗(yàn)2鏈表驗(yàn)證實(shí)驗(yàn)實(shí)驗(yàn)2鏈表驗(yàn)證實(shí)驗(yàn)實(shí)驗(yàn)2鏈表驗(yàn)證實(shí)驗(yàn)編制僅供參考審核批準(zhǔn)生效日期地址:電話:傳真:郵編:班級(jí):計(jì)算機(jī)13-2學(xué)號(hào):1姓名:成績(jī):_________實(shí)驗(yàn)二單鏈表操作驗(yàn)證實(shí)驗(yàn)?zāi)康恼莆站€性表的鏈接存儲(chǔ)結(jié)構(gòu);驗(yàn)證單鏈表及其基本操作的實(shí)現(xiàn);進(jìn)一步掌握數(shù)據(jù)結(jié)構(gòu)及算法的程序?qū)崿F(xiàn)的基本方法。實(shí)驗(yàn)內(nèi)容用頭插法(或尾插法)建立帶頭結(jié)點(diǎn)的單鏈表;對(duì)已建立的單鏈表實(shí)現(xiàn)插入、刪除、查找等基本操作。。設(shè)計(jì)與編碼本實(shí)驗(yàn)用到的理論知識(shí)模板類、多文件系統(tǒng),鏈表的操作算法設(shè)計(jì)參見課本《數(shù)據(jù)結(jié)構(gòu)(C++版)》編碼將算法轉(zhuǎn)化為c++程序,設(shè)計(jì)主函數(shù)完成對(duì)各成員函數(shù)的調(diào)用。源代碼://#ifndef_LINKLIST_H#define_LINKLIST_H#include<iostream>usingnamespacestd;template<classT>structNode{ Tdata; structNode<T>*next;};template<classT>classLinkList{ Node<T>*first;//單鏈表的頭指針public: LinkList(Ta[],intn);//建立有n個(gè)元素的單鏈表 ~LinkList();//析構(gòu)函數(shù) voidCreateList(intn); voidInsert(inti,Tx);//在單鏈表中第i個(gè)位置插入值為x的節(jié)點(diǎn) TDelete(inti);//在單鏈表中刪除第i個(gè)節(jié)點(diǎn) intLocate(Tx);//求單鏈表中值為x的序號(hào) voidPrintList();//遍歷單鏈表,按序號(hào)依次輸出個(gè)元素};template<classT>LinkList<T>::LinkList(Ta[],intn){ first=newNode<T>; first->next=NULL;//初始化一個(gè)空鏈表 for(inti=n;i>=0;i--){ Node<T>*s; s=newNode<T>; s->data=a[i]; s->next=first->next;//為每個(gè)數(shù)組元素建立一個(gè)結(jié)點(diǎn) first->next=s;//插入到頭結(jié)點(diǎn)之后 }}//構(gòu)造函數(shù),創(chuàng)建一個(gè)新的鏈表template<classT>LinkList<T>::~LinkList(){ Node<T>*p; p=newNode<T>; p=first;//工作指針p初始化 while(p){//釋放單鏈表的每一個(gè)結(jié)點(diǎn)的存儲(chǔ)空間 Node<T>*q; q=newNode<T>; q=p;//暫存被釋放結(jié)點(diǎn) p=p->next;//工作指針p指向被釋放結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn),使單鏈表不斷開 deleteq; }}//析構(gòu)函數(shù),釋放空間template<classT>voidLinkList<T>::Insert(inti,Tx){ Node<T>*p; p=newNode<T>; p=first;//工作指針p初始化 intj=0; while(p&&j<i-1){ p=p->next;//工作指針p后移 j++; } if(!p)throw"位置"; else{ Node<T>*s; s=newNode<T>; s->data=x;//向內(nèi)存申請(qǐng)一個(gè)結(jié)點(diǎn)s,其數(shù)據(jù)域?yàn)閤 s->next=p->next;//將結(jié)點(diǎn)s插入到結(jié)點(diǎn)p之前 p->next=s; }}//插入元素到位置itemplate<classT>TLinkList<T>::Delete(inti){ Node<T>*p,*q; Tx; p=newNode<T>; p=first; intj=0;//工作指針p初始化 while(p&&j<i-1){//查找第i-1個(gè)結(jié)點(diǎn) p=p->next; j++; } if(!p||!p->next) throw"位置";//結(jié)點(diǎn)p不存在或結(jié)點(diǎn)p的后繼結(jié)點(diǎn)不存在 else{ q=p->next; x=q->data;//暫存被刪結(jié)點(diǎn) p->next=q->next;//摘鏈 deleteq; returnx; }}//刪除位置i的函數(shù)template<classT>intLinkList<T>::Locate(Tx){ Node<T>*p; p=newNode<T>; p=first->next; intj=1; while(p&&p->data!=x){ p=p->next;//工作指針p后移 j++; } if(p) returnj; else return0;}//查找template<classT>voidLinkList<T>::PrintList(){ Node<T>*p;//設(shè)置工作指針 p=first->next;//從首元結(jié)點(diǎn)開始遍歷 inti=1;//元素位序 while(p) { cout<<p->data<<"\t"; p=p->next; i++; } cout<<endl;}//遍歷顯示鏈表#endif//#include<iostream>#include""#include""usingnamespacestd;charpause;//typedefintT;intmain(){ intn; cout<<"輸入要?jiǎng)?chuàng)建的鏈表的元素個(gè)數(shù)(<100):"; cin>>n; cout<<endl; inta[100]; cout<<"請(qǐng)依次輸入數(shù)組元素的值。"<<endl; for(inti=0;i<n;i++){ cout<<"輸入a["<<i<<"]的值:"; cin>>a[i]; cout<<endl; } LinkList<int>L(a,n);// //Tnum,prior_num; //intnum,prior_num; intnum; intchoice; do { cout<<"1-插入操作\n"; cout<<"2-刪除操作\n"; cout<<"3-查找操作\n"; cout<<"4-輸出鏈表\n"; cout<<"5-退出\n"; cout<<"輸入選擇的操作:"; cin>>choice; switch(choice) { case1://在指定位置插入元素 inti; cout<<"輸入要插入位置:"; cin>>i; cout<<endl; cout<<"輸入要插入元素的值:"; cin>>num; cout<<endl; try { (i,num); } catch(char*error) { cout<<error<<endl; } break; case2://刪除指定位置元素 cout<<"輸入想刪除位置:"; cin>>i; cout<<endl; try { num=(i); cout<<"被刪除元素為:"<<num<<endl; } catch(char*error) { cout<<error<<endl; } break; case3://按值查找 cout<<"輸入要查詢的值:"; cin>>num;// i=(num); cout<<"查詢的元素"<<num<<"位于鏈表的位置為:"<<i<<endl; break; case4://顯示表 (); cout<<endl; break; case5://退出 cout<<"Exit"<<endl; break; default: cout<<"無效的選項(xiàng)\n"; break; } }while(choice!=5); return0;}運(yùn)行與調(diào)試在調(diào)試程序的過程中遇到什么問題,是如何解決的進(jìn)行運(yùn)行時(shí)沒有錯(cuò)誤,但輸出的數(shù)組是倒序的,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商務(wù)英語(yǔ)函電高效溝通與跨境貿(mào)易合作周期縮短研究畢業(yè)論文答辯匯報(bào)
- 六年級(jí)英語(yǔ)下冊(cè)UnitHowtallareyou人教PEP教案(2025-2026學(xué)年)
- 幼兒園中班下學(xué)期社會(huì)害怕的時(shí)候教案
- 幼兒園大班健康詳案靈巧的身體教案
- 人教版語(yǔ)文一年級(jí)下冊(cè)荷葉圓圓表格式課時(shí)導(dǎo)學(xué)教案設(shè)計(jì)(2025-2026學(xué)年)
- 師大附中實(shí)驗(yàn)班二輪復(fù)習(xí)六小節(jié)市公開課金獎(jiǎng)市賽課教案
- 大班音樂拔根蘆柴花教案反思
- 統(tǒng)編部編三下語(yǔ)文燕子名師教學(xué)設(shè)計(jì)公開課教案教學(xué)設(shè)計(jì)公開課教案教學(xué)設(shè)計(jì)
- 高中生物基因在染色體上新課標(biāo)人教版必修教案
- 鐵路機(jī)車車輛第二章車體教案
- DL5190.4-2019電力建設(shè)施工技術(shù)規(guī)范第4部分:熱工儀表及控制裝置
- 阿特拉斯空壓機(jī)-培訓(xùn)資料
- 2024年江蘇省海洋知識(shí)競(jìng)賽備考試題庫(kù)(含答案)
- 高一語(yǔ)文經(jīng)典古代詩(shī)詞賞析
- 協(xié)助扣劃存款通知書
- 自動(dòng)控制原理課程設(shè)計(jì)報(bào)告恒溫箱
- 江西d照駕駛員理論考試
- GB/T 30340-2013機(jī)動(dòng)車駕駛員培訓(xùn)機(jī)構(gòu)資格條件
- GB/T 19215.1-2003電氣安裝用電纜槽管系統(tǒng)第1部分:通用要求
- GB/T 13298-2015金屬顯微組織檢驗(yàn)方法
- 滴滴打車用戶出行習(xí)慣報(bào)告
評(píng)論
0/150
提交評(píng)論