




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 實(shí)習(xí)報(bào)告“含頭結(jié)點(diǎn)的單鏈表”演示程序 (1) 、程序的功能和特點(diǎn)主要實(shí)現(xiàn)的功能有:1.查找給定關(guān)鍵字的結(jié)點(diǎn); 2.在單鏈表第l個(gè)結(jié)點(diǎn)位置插入一個(gè)新結(jié)點(diǎn); 3.刪除第l個(gè)結(jié)點(diǎn); 4.顯示全部鏈表; 5.求鏈表的長(zhǎng)度;(二)、程序的算法設(shè)計(jì) “比較”算法:1. 【邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)】邏輯結(jié)構(gòu):每個(gè)元素之間是相鄰的;存儲(chǔ)結(jié)構(gòu):元素存儲(chǔ)于任意的存儲(chǔ)單元中,可以是連續(xù)的,也可以是不 連續(xù)的;2.【基本操作設(shè)計(jì)】元素存儲(chǔ)域任意的存儲(chǔ)單元中,這時(shí)需要在存儲(chǔ)元素本身信息的同時(shí),還要存儲(chǔ)下一個(gè)元素的位置。由此構(gòu)成一個(gè)鏈狀結(jié)構(gòu),成為鏈表。將表示數(shù)據(jù)元素和下一個(gè)元素位置的結(jié)構(gòu),如下所示:數(shù)據(jù)元素 指針域稱為鏈
2、表的結(jié)點(diǎn)指針域用來存放下一個(gè)元素的地址,這樣就可以保證表的連續(xù)性3. 【算法設(shè)計(jì)】指向第一個(gè)結(jié)點(diǎn)查找給定關(guān)鍵字的結(jié)點(diǎn) 否不是當(dāng)前所查找的結(jié)點(diǎn)并且沒有到鏈尾null否是指針域!=null移動(dòng)指針,使其指向下一個(gè)元素是返回結(jié)點(diǎn)在單鏈表第l個(gè)結(jié)點(diǎn)位置插入一個(gè)新結(jié)點(diǎn)第l個(gè)結(jié)點(diǎn),新結(jié)點(diǎn)id 建立新結(jié)點(diǎn)指針p后移l個(gè)結(jié)點(diǎn)把p之后鏈表接到新結(jié)點(diǎn)的后面把新結(jié)點(diǎn)接在p所指結(jié)點(diǎn)的后面刪除第l個(gè)結(jié)點(diǎn)是判斷鏈表是否為空否null使指針p指向所要?jiǎng)h結(jié)點(diǎn)的前驅(qū)指向要?jiǎng)h結(jié)點(diǎn)指向要?jiǎng)h結(jié)點(diǎn)的后驅(qū)4. 【高級(jí)語言代碼】 查找給定關(guān)鍵字的結(jié)點(diǎn),返回結(jié)點(diǎn)linknodenode p=first; /指向第一結(jié)點(diǎn)/不是當(dāng)前結(jié)點(diǎn)并且沒有
3、到鏈尾while(p.idata!=id&&p.next!=null)p=p.next;if(p.next!=null) return p;else return null; 在單鏈表第l個(gè)結(jié)點(diǎn)位置插入一個(gè)新結(jié)點(diǎn)linknodenode newlinknodenode= new linknodenode(id,fd); /誕生新結(jié)點(diǎn)newlinknodenodeint i=1;linknodenode p=first; /指向第一結(jié)點(diǎn)/p指針后移l個(gè)結(jié)點(diǎn)while(p.next!=null && i+<l) p=p.next;newlinknodenode
4、.next=p.next; /把p之后的鏈表接在新結(jié)點(diǎn)的后面p.next=newlinknodenode; /把新結(jié)點(diǎn)接在p所指結(jié)點(diǎn)的后面return true;刪除第l個(gè)結(jié)點(diǎn)if(isempty() return null;linknodenode p=first; /指向第一個(gè)結(jié)點(diǎn)int i=1;while(p.next!=null && i+<l)p=p.next; /指向要?jiǎng)h結(jié)點(diǎn)的前驅(qū)linknodenode q=p.next; /指向要?jiǎng)h結(jié)點(diǎn)p.next=q.next; /p指向要?jiǎng)h結(jié)點(diǎn)的后繼return q; /返回已刪結(jié)點(diǎn)(三)、程序中類的設(shè)計(jì) “l(fā)inkn
5、odelist”類:1. 【邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)】邏輯結(jié)構(gòu):每個(gè)元素之間是相鄰的;存儲(chǔ)結(jié)構(gòu):元素存儲(chǔ)于任意的存儲(chǔ)單元中,可以是連續(xù)的,也可以是不 連續(xù)的;2. 【主要成員變量說明】 public linknode first; /單鏈表的頭指針【主要成員方法說明】 查找給定關(guān)鍵字的結(jié)點(diǎn),返回結(jié)點(diǎn) public linknode linknodefind(int id) 在單鏈表第l個(gè)結(jié)點(diǎn)位置插入一個(gè)新結(jié)點(diǎn)public boolean insertwhere(int l,int id) 刪除第l個(gè)結(jié)點(diǎn)public linknode deletewhere(int l)顯示全部鏈表public vo
6、id listdisplay()返回鏈表長(zhǎng)度(結(jié)點(diǎn)數(shù))public int listlength()4. 【高級(jí)語言代碼】 鏈表的結(jié)點(diǎn)類class linknodepublic int idata; /數(shù)據(jù)域(結(jié)點(diǎn)關(guān)鍵字)public linknode next; /指針域(指向下一結(jié)點(diǎn))public linknode() /頭結(jié)點(diǎn)構(gòu)造方法idata=-1;/數(shù)據(jù)域賦值/指針域自動(dòng)初始化為nullpublic linknode(int id) /結(jié)點(diǎn)構(gòu)造方法idata=id; /數(shù)據(jù)域賦值public void linknodedisplay() /顯示自身的數(shù)據(jù)域system.out.pri
7、ntln(""+idata+""); 單鏈表類class linknodelist public linknode first; /單鏈表的頭指針public linknodelist () /構(gòu)造方法first=new linknode(); /空單鏈表,頭指針指向頭結(jié)點(diǎn)public boolean isempty() /單鏈表是否為空return (first.next=null); /頭結(jié)點(diǎn)的指針為空/查找給定關(guān)鍵字的結(jié)點(diǎn),返回結(jié)點(diǎn)public linknode linknodefind(int id) linknode p=first; /指向第
8、一結(jié)點(diǎn)/不是當(dāng)前結(jié)點(diǎn)并且沒有到鏈尾while(p.idata!=id&&p.next!=null)p=p.next;if(p.next!=null) return p;else return null; /在單鏈表第l個(gè)結(jié)點(diǎn)位置插入一個(gè)新結(jié)點(diǎn)public boolean insertwhere(int l,int id) linknode newlinknode= new linknode(id); /誕生新結(jié)點(diǎn)newlinknodeint i=1;linknode p=first; /指向第一結(jié)點(diǎn)/p指針后移l個(gè)結(jié)點(diǎn)while(p.next!=null &&
9、i+<l) p=p.next;newlinknode.next=p.next; /把p之后的鏈表接在新結(jié)點(diǎn)的后面p.next=newlinknode; /把新結(jié)點(diǎn)接在p所指結(jié)點(diǎn)的后面return true;/刪除第l個(gè)結(jié)點(diǎn)public linknode deletewhere(int l) if(isempty() return null;linknode p=first; /指向第一個(gè)結(jié)點(diǎn)int i=1;while(p.next!=null && i+<l)p=p.next; /指向要?jiǎng)h結(jié)點(diǎn)的前驅(qū)linknode q=p.next; /指向要?jiǎng)h結(jié)點(diǎn)p.next=q
10、.next; /p指向要?jiǎng)h結(jié)點(diǎn)的后繼return q; /返回已刪結(jié)點(diǎn)/顯示全部鏈表public void listdisplay() linknode p=first.next; /指向第一個(gè)結(jié)點(diǎn)system.out.println("顯示鏈表:從前到后");while(p!=null) p.linknodedisplay(); /顯示結(jié)點(diǎn)p=p.next;system.out.println("*");/返回鏈表長(zhǎng)度(結(jié)點(diǎn)數(shù))public int listlength() linknode p=first.next; /指向頭結(jié)點(diǎn)int i=0;wh
11、ile(p!=null)p=p.next;i+;return i;/置鏈表為空表public void makeempty() first.next=null; public static void main(string args) linknodelist s1=new linknodelist(); /空鏈表誕生s1.insertwhere(1,12); /從指定位置插入結(jié)點(diǎn)s1.insertwhere(2,34);s1.insertwhere(3,53);s1.insertwhere(4,32);s1.insertwhere(3,76);s1.listdisplay();s1.deletewhere(4); /刪除第4個(gè)結(jié)點(diǎn)s1.listdi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高考生物總復(fù)習(xí)高中生物學(xué)200個(gè)判斷題及解析
- DB36-T1672-2022-蓮鱉魚綜合種養(yǎng)技術(shù)規(guī)程-江西省
- 免疫熒光原位雜交技術(shù)FISH
- 醫(yī)學(xué)英語中醫(yī)教學(xué)課件
- 2025年小學(xué)三年級(jí)童話閱讀理解能力測(cè)試卷(附答案解析)
- 2025年小學(xué)教師資格《綜合素質(zhì)》教育案例分析與反思技巧試題(含答案)
- 2025年托福TOEFL閱讀專項(xiàng)突破模擬試卷:長(zhǎng)難句解析與題型深度訓(xùn)練
- A-Level進(jìn)階數(shù)學(xué)(FurtherMath)2024-2025年秋季期末考試試卷:矩陣與復(fù)數(shù)應(yīng)用題庫
- 高考物理沖刺備考:2025年模擬試題詳解
- 四年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)及答案
- 2025-2030新型鋼材產(chǎn)業(yè)市場(chǎng)深度調(diào)研及前景趨勢(shì)與投資研究報(bào)告
- 2025年5G網(wǎng)絡(luò)在無人機(jī)領(lǐng)域的應(yīng)用可行性研究報(bào)告
- 央企華潤(rùn)集團(tuán)杭州片區(qū)年度品牌傳播策略案
- 2025閩教版英語三年級(jí)下冊(cè)單詞表
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- 百勝餐飲HIC高效能的輔導(dǎo)
- 皇家寵物食品有限公司的營(yíng)銷策略分
- 機(jī)電控制與可編程序控制器課程設(shè)計(jì).doc
- 發(fā)電機(jī)檢修規(guī)程
- 市政雨污水管道疏通總體方案范本
- 國(guó)家職業(yè)技能標(biāo)準(zhǔn) (2020年版) 餐廳服務(wù)員
評(píng)論
0/150
提交評(píng)論