![2023年數(shù)據(jù)結構單鏈表實驗報告_第1頁](http://file4.renrendoc.com/view/d5ed0df97fd73378f574a7015c6ea7dc/d5ed0df97fd73378f574a7015c6ea7dc1.gif)
![2023年數(shù)據(jù)結構單鏈表實驗報告_第2頁](http://file4.renrendoc.com/view/d5ed0df97fd73378f574a7015c6ea7dc/d5ed0df97fd73378f574a7015c6ea7dc2.gif)
![2023年數(shù)據(jù)結構單鏈表實驗報告_第3頁](http://file4.renrendoc.com/view/d5ed0df97fd73378f574a7015c6ea7dc/d5ed0df97fd73378f574a7015c6ea7dc3.gif)
![2023年數(shù)據(jù)結構單鏈表實驗報告_第4頁](http://file4.renrendoc.com/view/d5ed0df97fd73378f574a7015c6ea7dc/d5ed0df97fd73378f574a7015c6ea7dc4.gif)
![2023年數(shù)據(jù)結構單鏈表實驗報告_第5頁](http://file4.renrendoc.com/view/d5ed0df97fd73378f574a7015c6ea7dc/d5ed0df97fd73378f574a7015c6ea7dc5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
洛陽理工學院實驗報告系別計算機系班級學號姓名課程名稱數(shù)據(jù)結構實驗日期11.7實驗名稱鏈表的基本操作成績實驗目的:熟悉掌握線性表鏈式存儲結構,掌握與應用查找、插入、刪除等基本操作算法,訓練和提高結構化程序設計能力及程序調(diào)試能力。實驗條件:計算機一臺,VisualC++6.0實驗內(nèi)容:.問題描述以單鏈表為存儲結構實現(xiàn)以下基本操作:在第i個元素前插入一個新元素。查找值為x的某個元素。若成功,給出x在表中的位置;不成功給出提醒信息。刪除第i個元素,若成功,給出提醒信息并顯示被刪元素的值;不成功給出失敗的提醒信息。.數(shù)據(jù)結構類型定義typedefstructLinkNodedintVa1ue;ostructLinkNode*Next;}Node,*LinkList;.模塊劃分(1)初始化鏈表:voidInitList(LinkList*L);(2)創(chuàng)建鏈表:尾插法:intCreateFromTail(LinkListL);(3)在指定位置插入元素:intInsList(LinkListL,inti,inte);(4)在指定位置刪除元素:intDelList(LinkListL,inti,int*e);返回值說明:返回ERROR插入失敗,返回OK插入成功;(5)按位置查找鏈表元素:intGetList(LinkListL,inti,int*e);.具體設計voidinit_1ink1ist(LinkList*1)/*對單鏈表進行初始化*/{(LinkList)malloc(sizeof(Node));/*申請結點空間*/式*1)->next=NULL;/*置為空表*/}voidCreateFromHead(LinkListL)(Node*s;?>charc;intf1ag=1;while(flag)/*flag初值為1,當輸入〃$〃時,置flag為0,建表結束*/c=getchar();。if(c!='$')°{3s=(Node*)ma1loc(sizeof(Node));/*建立新結點s*/8S->data=c;。。。s—>next=L->next;/*將s結點插入表頭*/[一>next=s;}oelseflag=0;))voidCreateFromTai1(LinkListL)(Node*r,*s;0charc;ntflag=1;/*設立一個標志,初值為1,當輸入〃$〃時,flag為0,建表結束*/。r=L;/*r指針動態(tài)指向鏈表的當前表尾,以便于做尾插入,其初值指向頭結點*/while(flag)/*循環(huán)輸入表中元素值,將建立新結點s插入表尾*/。{^c=getchar();。if(c!='$')oo{。s=(Node*)maHoc(sizeof(Node));s->data=c;。。r->next=s;。。r=s;0}e1seg{flag=0;3r—>next=NULL;/*將最后一個結點的next鏈域置為空,表達鏈表的結束*/。))}Node*Get(LinkListL,inti)/*在帶頭結點的單鏈表L中查找第i個結點,若找到(1WiWn),則返回該結點的存儲位置;否則返回NULL*/(intj;Node*p;°P=L;°j=0;/*從頭結點開始掃描*/while((p->next!=NULL)&&(j<i))(wp=p->next;/大掃描下一結點*/gj++;/*己掃描結點計數(shù)器*/)if(i==j)?oreturnp;/*找到了第i個結點*/?elsereturnNULL;/*找不到,iWO或i>n*/Node*Locate(LinkListL,ElemTypekey)/*在帶頭結點的單鏈表L中查找其結點值等于key的結點,若找到則返回該結點的位置P,否則返回NULL*/(Node*p;P=L->next;/*從表中第一個結點開始*/owhile(p!=NULL)if(p->data!=key)叩=p—>next;e1se。obreak;/*找到結點值=key時退出循環(huán)*/returnp;)intInsList(LinkListL,inti,ElemTypee)/*在帶頭結點的單鏈表L中第i個位置插入值為e的新結點s*/(Node*pre,*s;intk;pre=L;k=0;/*從〃頭〃開始,查找第i—l個結點*/while(pre!=NULL&&kVi-1)/*表未查完且未查到第i-l個時反復,找到pre指向第i-1個*/。{*pre=pre->next;ok=k+l;}。。。/*查找第i-1結點*/oif(!pre)/*如當前位置Pre為空表已找完尚未數(shù)到第i個,說明插入位置不合理*/。printf(〃插入位置不合理!〃);。returnERROR;?s=(Node*)malloc(sizeof(Node));/*申請一個新的結點S*/?s->data=e;/*值e置入s的數(shù)據(jù)域*/as—>next=pre->next/*修改指針,完畢插入操作*/pre—>next=s;oreturn0K;)intDe1List(LinkListL,inti,ElemType*e)/*在帶頭結點的單鏈表L中刪除第i個元素,并將刪除的元素保存到變量*e中*/(Node*pre,*r;??intk;opre=L;k=0;while(pre->next!=NULL&&k<i-1)/*尋找被刪除結點i的前驅(qū)結點i-1使p指向它*/(pre=pre—>next;ok=k+1;。}gg"*查找第i-1個結點*/0if(!(pre->next))/*即while循環(huán)是由于p->next=NULL或i<I而跳出的,而是由于沒有找到合法的前驅(qū)位置,說明刪除位置i不合法。*/。{-printf(〃刪除結點的位置i不合理!〃);^returnERR0R;r=pre->next;叩re->next=pre->next->next;/*修改指針,刪除結點r*/*e=r->data;ree(r);/*釋放被刪除的結點所占的內(nèi)存空間*/
oprintf(〃成功刪除結點!”);returnOK;}intListLength(LinkListL)/*求帶頭結點的單鏈表L的長度*/(Node*p;ftintj;?p=L->next;j=0;/*用來存放單鏈表的長度*/hi1e(p!=NULL){。叩二p—>next;gj++;Jreturnj;。/*j為求得的單鏈表長度*/}5.測試數(shù)據(jù)及結果*SJL先后入查找3、冊?。莩?。、否找3、刪除。、<<endlWiH作怦一W1的泊入入,作謨當痣2源雪。請.A.插3-*SJL先后入查找3、冊!]除。、否找3、刪除。、<<endlWiH作怦一W1的泊入入,作謨當痣2源雪。請.A.插3-.?中?I警6肝BF選吉4前入一串單字行數(shù)據(jù).;G?BVx當前轉(zhuǎn)性表為:%%金叁蚩的蜂作:1、以T吉束!插入2、查找3、刪除。、退出摹的理18葷塾F的入入線餐鬻5詵語雪。語的在歲杳甥9的£8^翼您拿治軍>二641時5選H文壇3、冊”除。、:艮中退出退出請輸入一串單字符數(shù)據(jù),以M結束!56789*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)科技解除居間合同
- 現(xiàn)代辦公環(huán)境的創(chuàng)新與變革研究
- 中國青銅上回閥項目投資可行性研究報告
- 加盟炸雞店合同范本
- 電動車充電設施的安全技術創(chuàng)新研究
- 借用公司簽合同范本
- 裝修糾紛處理合同及清單
- 2025年度北京高端零售店員職業(yè)發(fā)展聘用協(xié)議
- 2025年中國一次性紙制品行業(yè)市場需求預測及投資戰(zhàn)略規(guī)劃報告
- 安康液氨項目申請報告
- 2025年度化妝品電商平臺流量互換銷售合作合同
- 學習解讀2025年印發(fā)《教育強國建設規(guī)劃綱要(2024-2035年)》課件
- 全過程造價咨詢服務的質(zhì)量、進度、保密等保證措施
- 縣城屠宰場建設可行性研究報告
- 25學年六年級數(shù)學寒假作業(yè)《每日一練》
- 2025高考數(shù)學一輪復習-第8章-第3節(jié) 圓的方程【課件】
- DB3301T 1088-2018 杭州龍井茶栽培技術規(guī)范
- 環(huán)保行業(yè)深度研究報告
- 工程機械租賃服務方案及保障措施 (二)
- 保障性住房補貼委托書范本
- 公益捐助活動影響力評估方法
評論
0/150
提交評論