




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-. z.班級:計算機13-2*:1:成績:_實驗二單鏈表操作驗證實驗目的掌握線性表的存儲構造;驗證單鏈表及其根本操作的實現;進一步掌握數據構造及算法的程序實現的根本方法。實驗容用頭插法或尾插法建立帶頭結點的單鏈表;對已建立的單鏈表實現插入、刪除、查找等根本操作。設計與編碼本實驗用到的理論知識模板類、多文件系統,鏈表的操作算法設計參見課本數據構造C+版編碼將算法轉化為c+程序,設計主函數完成對各成員函數的調用。源代碼:/LinkList.h#ifndef _LINKLIST_H#define _LINKLIST_H#include using namespace std;template st
2、ruct Node T data;struct Node*ne*t;template class LinkList Node*first; /單鏈表的頭指針public:LinkList(T a,int n); /建立有n個元素的單鏈表LinkList(); /析構函數void CreateList(int n); void Insert(int i,T *); /在單鏈表中第i個位置插入值為*的節點T Delete(int i); /在單鏈表中刪除第i個節點int Locate(T *); /求單鏈表中值為*的序號void PrintList(); /遍歷單鏈表,按序號依次輸出個元素;tem
3、plate LinkList:LinkList(T a,int n) first=new Node;first-ne*t=NULL; /初始化一個空鏈表for ( int i=n; i=0; i-) Node *s;s=new Node;s-data=ai;s-ne*t=first-ne*t; /為每個數組元素建立一個結點first-ne*t=s; /插入到頭結點之后 /構造函數,創立一個新的鏈表template LinkList:LinkList() Node*p;p=new Node;p=first; /工作指針p初始化while (p) /釋放單鏈表的每一個結點的存儲空間Node*q;q
4、=new Node;q=p; /暫存被釋放結點p=p-ne*t; /工作指針p指向被釋放結點的下一個結點,使單鏈表不斷開delete q; /析構函數,釋放空間template void LinkList:Insert(int i,T *) Node*p;p=new Node;p=first; /工作指針p初始化int j=0;while (p&jne*t; /工作指針p后移j+;if (!p) throw位置;else Node*s;s=new Node;s-data=*; /向存申請一個結點s,其數據域為*s-ne*t=p-ne*t; /將結點s插入到結點p之前p-ne*t=s; /插入元
5、素到位置itemplate T LinkList:Delete(int i) Node*p,*q;T *;p=new Node;p=first;int j=0; /工作指針p初始化while (p&jne*t;j+;if (!p | !p-ne*t)throw位置; /結點p不存在或結點p的后繼結點不存在else q=p-ne*t;*=q-data; /暫存被刪結點p-ne*t=q-ne*t; /摘鏈delete q;return *; /刪除位置i的函數template int LinkList:Locate(T *) Node*p;p=new Node;p=first-ne*t;int j
6、=1;while (p&p-data!=*) p=p-ne*t; /工作指針p后移j+;if (p)return j;elsereturn 0; /查找template void LinkList:PrintList() Node*p;/設置工作指針p=first-ne*t;/從首元結點開場遍歷int i=1;/元素位序while(p)coutdatane*t;i+;coutendl; /遍歷顯示鏈表#endif/LinkList.cpp#include #include Windows.h#include LinkList.husing namespace std;char pause;/t
7、ypedef int T;int main()int n;cout輸入要創立的鏈表的元素個數(n;coutendl;int a100;cout請依次輸入數組元素的值。endl;for( int i=0; in; i+) cout輸入aiai;coutendl;LinkList L(a,n);/T num,prior_num;/int num,prior_num;int num;int choice;docout1-插入操作n;cout2-刪除操作n;cout3-查找操作n;cout4-輸出鏈表n;cout5-退出n;coutchoice;switch(choice)case 1:/在指定位置插
8、入元素int i;couti;coutendl;coutnum;coutendl;tryL.Insert(i,num);catch(char *error) couterrorendl; break;case 2:/刪除指定位置元素couti;coutendl;trynum=L.Delete(i);cout被刪除元素為:numendl;catch(char *error) couterrorendl; break;case 3:/ 按值查找coutnum;/i=L.Locate(num);cout查詢的元素num位于鏈表的位置為:iendl;break;case 4:/顯示表L.PrintList();coutendl;break;case 5:/退出coutE*itendl;break;default:cout無效的選項n;break;while(choice!=5);return 0;運行與調試在調試程序的過程中遇到什么問題,是如何解決的?進展運行時沒有錯誤,但輸出的數組是倒序的,將LinkList methon的for循環的條件更改之后正常運行并到達預想效果。設計了哪些設計數據?測試結果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 培訓機構住宿管理辦法
- 現代教育技術支持下的教學模式創新研究
- 杭州概算控制管理辦法
- 粉末冶金鈦合金快速燒結過程研究:微觀組織變化及其機制
- 社區治理中的“老有所為”與積極老齡化路徑探索
- 園區低頻噪音管理辦法
- “數實融合”在皮革行業高質量發展中的作用研究
- 公務接待超市管理辦法
- 干濕和氧化條件下生物炭對溶液中Cd2吸附機制的研究
- 農墾食品安全管理辦法
- 發動機缸徑測量實訓課件
- 八五普法考試答案
- 國家電網考試歷年真題(含解析)
- XX裝飾裝修工程施工設計方案
- 部編版九年級語文上冊教案
- 2023-2024學年黑龍江省寧安市初中語文七年級下冊期末高分通關試卷
- GB/T 6075.3-2011機械振動在非旋轉部件上測量評價機器的振動第3部分:額定功率大于15 kW額定轉速在120 r/min至15 000 r/min之間的在現場測量的工業機器
- GB/T 5594.4-2015電子元器件結構陶瓷材料性能測試方法第4部分:介電常數和介質損耗角正切值測試方法
- 預防保健科護理質量控制考核標準
- 起重作業吊裝令
- 林州重機710采煤機電控箱裝配流程
評論
0/150
提交評論