- 3
- 0
- 约3.68千字
- 约 44页
- 2017-03-04 发布于天津
- 举报
第三章链结串列3-1单向链结串列3-2环状链结串列3-3双向链结串列
第三章 鏈結串列 單向鏈結串列 「單向鏈結串列」中第一個節點是「串列指標首」,指向最後一個節點的鏈結欄位設為Null表示它是「串列指標尾」,不指向任何地方。 例如串列A={a,b,c,d,x},其單向串列資料結構如下 java語言中要模擬鏈結串列中的節點,必須宣告如下的Node類別: 單向鏈結串列的建立 使用java語言的鏈結串列處理以下學生的成績問題。學生成績處理會有以下欄位。 必須宣告節點的資料型態,讓每一個節點包含一筆資料,並且包含指向下一筆資料的指標,使所有資料能被串在一起而形成一個串列結構,如下圖: 範例程式:ch03_01.java 運作原理詳細說明如下: 步驟1 建立新節點。 步驟2 將鏈結串列的first及last指標欄指向newNode。 步驟3 建立另一個新節點。 步驟4 將兩個節點串起來。 last.next=newNode; last=newNode; 步驟5 依序完成如下圖所示的鏈結串列結構。 串列首 只要有串列首存在,就可以對整個串列進行走訪、加入及刪除節點等動作。而之前建立的節點若沒有串起來就會形成無人管理的節點,並一直佔用記憶體空間。 在建立串列時必須有一串列指標指向串列首,並且除非必要否則不可移動串列首指標。 單向鏈結串列的節點刪除 刪除串列的第一個節點: 只要把串列首指標指向第二個節點即可。 刪除串列內的中間節點: 將刪除節點的前一個節點的指標,指向欲刪除節點的下一個節點即可,如下段程式碼所示: 刪除串列後的最後一個節點: 只要指向最後一個節點的指標,直接指向null即可。 範例程式:ch03_02.java 單向鏈結串列的節點插入 1.在串列的第一節點插入節點 只需把新節點的指標指向串列首,再把串列首移到新節點上即可。 2.在串列的最後一個節點後面插入節點: 把串列的最後一個節點的指標指向新節點,新節點再指向null即可。 3.在串列的中間位置插入節點: 如果插入的節點是在X與Y之間,只要將X節點的指標指向新節點,新節點的指標指向Y節點即可。 單向鏈結串列的反轉功能 鏈結串列中的節點特性是知道下一個節點的位置,可是卻無從得知它的上一個節點位置,不過如果要將串列反轉,則必須使用三個指標變數。如下圖所示: 範例程式:ch03_03.java 單向鏈結串列的連結 對於兩個或以上鏈結串列的連結(Concatenation),其實作法也很容易;只要將串列的首尾相連即可。如下圖所示: 多項式的串列表示法 使用陣列表示法經常會出現以下的困擾: 多項式內容變動時,對陣列結構的影響相當大,演算法處理不易。 由於陣列是靜態資料結構,所以事先必須尋找一塊連續夠大的記憶體,容形成空間的浪費。 多項式相加演算法範例 範例程式:ch03_04.java 範例 3.2.1 假設一鏈結串列的節點結構如下: 來表示多項式XAYBZC之項。 (a)請繪出多項式X6-6XY5+5Y6的鏈結串列圖。 (b)繪出多項式”0”的鏈結串列圖。 (c)繪出多項式X6-3X5-4X4+2X3+3X+5的鏈結串列圖。 範例3.2.2 請設計一串列資料結構表示 P(x,y,z)=x10y3z10+2x8y3z2+3x8y2z2+x4y4z+6x3y4z+2yz 環狀鏈結串列 環狀鏈結串的定義 環狀鏈結串列的節點插入 環狀鏈結串列的節點刪除 環狀鏈結串列的結合 環狀鏈結串列表示稀疏矩陣 環狀鏈結串的定義 建立的過程與單向鏈結串列相似,唯一的不同點是必須要將最後一個節點指向第一個節點。如下圖所示: 環狀鏈結串列的節點插入 1.直接將新節點插在第一個節點前成為串列首。圖形如下: 2.將新節點I插在任意節點X之後,圖形如下: 環狀鏈結串列的節點刪除 1.刪除環狀鏈結串列的第一個節點。圖形如下: 2.刪除環狀鏈結串列的中間節點。圖形如下: 環狀鏈結串列的結合 單向鏈結串列的連結只需改變一個指標就可以了,如下圖所示: 範例程式:StuLinkedList.java 環狀鏈結串列表示稀疏矩陣 環狀鏈結串列也可以用來表現稀疏矩陣,而且簡單方便許多。它的資料結構如下: 範例 3.3.1 稀疏矩陣(sparse matrix)可以鏈結串列(linked list)來表示,請用鏈結串列表下列矩陣: 範例 3.3.2 用陣列法和鏈結串列法表示稀疏矩陣有何優缺點,又如果用鏈結串列表示時,回收到AVL串列(可用空間串列),時間複雜度為多少? 雙向鏈結串列 雙向鏈結串列可以改善這兩個缺點,因為它的基本結構和單向鏈結串列類似,至少有一個欄位存放資料,只是它有兩個欄位存放指標,其中一個指標指向後面的節點,另一個則指向前面節點。 雙向鏈結串列的定義 雙向鏈結串列的資料結構,可以定義如下: 每個節點
您可能关注的文档
- 第三章天然产物的提取分离方法-中药与海洋药物实验室.ppt
- 第三章航班信息查询.ppt
- 第三节德育过程及其组织.ppt
- 第三节国债的规模与效应.ppt
- 第三部分学校特色.doc
- (43页PPT)贵州文旅5A级景区荔波小七孔抖音运营方案.pptx
- (43页PPT)黄小蕾Unit2PartB课件黄小蕾.pptx
- (41页PPT)知识付费托福TOEFL程序整合运营全案.pptx
- (42页PPT)知识付费托福TOEFL合运营全案45.pptx
- 华虹公司-市场前景及投资研究报告:特色工艺翘楚,国芯自主脊梁.pdf
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
原创力文档

文档评论(0)