版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、雙向循環(huán)鏈表的基本操作#include using namespace std;struct DblNode int data; DblNode *rLink; DblNode*lLink;class DblListpublic:DblList(; DblList(; bool IsEmpty(; int GetLength(; void Output(; void ClearList(; bool HeadInsert(int e;bool TailInsert(int e; bool Insert(int pos,int e; int Locate(int e; bool DeleteNo
2、de(int pos,int&e;bool Insert(int i,const int& x,int d;bool SetData(int pos,int e; DblNode *GetNode(int pos;void Meun(;private:DblNode *first; DblNode *last; int Length;#include"DblList.h"DblList:DblList(first=new DblNode;if(!firstexit(-1;first->rLink=first;first->lLink=first;
3、last=first;Length=0;DblList:DblList(DblNode *p1=first;DblNode *p2;while(p1!=lastp2=p1;p1=p1->rLink;delete p2;delete last;bool DblList:IsEmpty(if(Length=0 return true;return false;bool DblList:HeadInsert(int eDblNode *p=new DblNode;if(!preturn false;p->data=e;p->rLink=NULL;p->lLink=NULL;i
4、f(Length=0p->rLink=first;p->lLink=first;first->rLink=p;first->lLink=p;last=p;elsep->rLink=first->rLink;p->lLink=first;first->rLink->lLink=p;first->rLink=p;Length+;return true; bool DblList:TailInsert(int eDblNode *p=new DblNode;if(!preturn false;p->data=e;p->rLink
5、=NULL;p->lLink=NULL;last->rLink=p;p->lLink=last;last=p;last->rLink=first;first->lLink=last;Length+;return true;bool DblList:Insert(int pos,int eif(pos<=1return HeadInsert(e;else if(pos>Lengthreturn TailInsert(e;elseDblNode*p1=GetNode(pos-1;DblNode*p2=GetNode(pos;DblNode*p=new Db
6、lNode;if(!preturn false;p->data=e;p->rLink=p2;p->lLink=p1;p2->lLink=p;p1->rLink=p;Length+;return true;bool DblList:DeleteNode(int pos,int&eif(pos<1|pos>Lengthreturn false;DblNode*p1=GetNode(pos-1;DblNode*p2=GetNode(pos;if(p2=lastdelete p2;Length-;last=p1;last->rLink=first
7、;first->lLink=last;elsep1->rLink=p2->rLink;p2->rLink->lLink=p1;delete p2;Length-;return true;int DblList:Locate(int eint i;DblNode*p=first->rLink;for(i=1;i<=Length;i+if(p->data=e return i;p=p->rLink;return 0;DblNode* DblList:GetNode(int posif(pos>Length|pos<0 return
8、NULL;DblNode *p=first;for(int i=0;i p=p->rLink;return p;bool DblList:SetData(int pos,int eif(pos<1|pos>Lengthreturn false;DblNode*p=GetNode(pos;if(!p return false;p->data=e;return true;void DblList:ClearList(DblNode*p1=first->rLink;DblNode*p2;while(p1!=firstp2=p1;p1=p1->rLink;delet
9、e p2;first->rLink=first;first->lLink=first;last=first;Length=0;int DblList:GetLength(return Length;void DblList:Output(cout<<"鏈表中的元素:"DblNode *p=first->rLink;while(p!=firstcout< data<< ' 'p=p->rLink;cout< void DblList:Meun(cout<<"*雙向循環(huán)鏈表的基本操
10、作*"< cout<<" 1-雙向循環(huán)鏈表全部數(shù)據(jù)的輸出"< cout<<" 2-雙向循環(huán)鏈表插入元素"< cout<<" 3-雙向循環(huán)鏈表刪除元素"< cout<<" 4-雙向循環(huán)鏈表查找元素"< cout<<" 5-雙向循環(huán)鏈表元素的修改"< cout<<" 6-雙向循環(huán)鏈表的長度"< cout<<" 7-雙向循環(huán)鏈表清空&qu
11、ot;< cout<<" 0-退出 "< cout<<"*"< cout<<"請輸出功能序號:"#include"DblList.h"void main(DblList dlist;int choice,x,pos,n;dlist.Meun(;cin>>choice;while(choice!=0switch(choicecase 1:dlist.Output(;break;case 2:cout<<"*"< c
12、out<<"1-雙鏈表頭部插入一個元素"< cout<<"2-雙鏈表尾部插入一個元素"< cout<<"3-雙鏈表任意位置插入元素"< cout<<"*"< cout<<"請選擇:"cin>>n;if(n=1cout<<"請輸入頭部要插入的元素值:"cin>>x;dlist.HeadInsert(x;else if(n=2cout<<"
13、請輸入尾部要插入的元素值:"cin>>x;dlist.TailInsert(x;elsecout<<"請輸入位序和元素值:"cin>>pos>>x;dlist.Insert(pos,x;break; break;case 3:cout<<"請輸入要刪除的結點位序:"cin>>pos;dlist.DeleteNode(pos,x;break;case 4:cout<<"*"< cout<<"1-按元素的數(shù)值查找&qu
14、ot;< cout<<"2-按元素的位置查找"< cout<<"*"< cout<<"請選擇:"cin>>n;if(n=1cout<<"請輸入要查找的元素值:"cin>>x;cout<<"位置為:"< elsecout<<"請輸入所需查找元素的位置:"cin>>pos;DblNode *p=dlist.GetNode(pos;if(pcout<<"第"< " 個元素值為: " < data< break;case 5:cout<<"請輸入要改變結點的位序和改制后
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年校園安保人員招聘與培訓合同樣本3篇
- 棗莊職業(yè)學院《環(huán)境學概論》2023-2024學年第一學期期末試卷
- 2025年度旅游行業(yè)個人導游勞務合同模板4篇
- 云南新興職業(yè)學院《結晶學及礦物學》2023-2024學年第一學期期末試卷
- 2025年度個人教育場所租賃合同(含設施維護服務)4篇
- 2025年度個人車庫買賣與產(chǎn)權過戶合同3篇
- 高速公路合同制收費員二零二五年度服務質量監(jiān)督與反饋協(xié)議3篇
- 防火安全的家庭巡查注意事項
- 裝飾裝修材料的防火性能與選擇
- 2025年度個人共有產(chǎn)權商品房買賣合同二零二五年專用4篇
- 2024年工程咨詢服務承諾書
- 青桔單車保險合同條例
- 車輛使用不過戶免責協(xié)議書范文范本
- 《獅子王》電影賞析
- 2023-2024學年天津市部分區(qū)九年級(上)期末物理試卷
- DB13-T 5673-2023 公路自愈合瀝青混合料薄層超薄層罩面施工技術規(guī)范
- 河北省保定市定州市2025屆高二數(shù)學第一學期期末監(jiān)測試題含解析
- 哈爾濱研學旅行課程設計
- 2024 smart汽車品牌用戶社區(qū)運營全案
- 中醫(yī)護理人文
- 2024-2030年中國路亞用品市場銷售模式與競爭前景分析報告
評論
0/150
提交評論