《數據結構與算法(java版)》第六章 鏈表結構

鏈表結構

6.1表節點

1.一個表節點只包含一個元素,但是它還包含另一個表節點(實際上是包含指向這個表節點的引用)。

2.創建節點的方式

先創建節點,再鏈接。

A)ListNode node1 = new ListNode(“A”);

ListNodenode2 = new ListNode(“B”);

ListNodenode3 = new ListNode(“C”);

node1.setNext(node2);

node2.setNext(node3);

利用重載構造函數的替代方法是:用一個表達式創建整個鏈。

B)new ListNode

(“A”,newListNode

(“B”,new ListNode(“C”)));

6.2棧和隊列

1.(非空的)LinkedStack包含一個ListNode(實質上是包含一個指向它的引用),這個ListNode反過來有包含一個元素,也許還包含另一個ListNode。

2.LinkedQueue實現Queue接口。因為我們在隊尾添加元素,并從隊頭刪除它們,所以必須記錄節點鏈的兩端。

6.3 LinkedList

1.LinkedList具有一個front字段,它是一個ListNode。就像在LinkedStack中一樣,這個節點可能反過來又包含其他的ListNode。

2.兩指算法:每次經過它的循環時都會指向兩個連續的節點,所以稱為兩指算法。

3.ListIterator記錄了包含由next()最近返回的Object的節點,以及該節點的前驅。

6.5小結

1.ListNode包含一個元素,并且可能還包含指向另一個ListNode的引用。我們可以構建任意長的ListNode鏈。

2.LinkedStack在鏈的一端接入和接出節點。LinkedQueue類必須記錄鏈的兩端。

3.LinkedList類是一種通用鏈表結構。Predecessor接口允許我們避免編寫特殊的代碼,用于添加一個元素到空List中,刪除第一個元素等。

6.6術語

雙向鏈接(doubly linked):可以指一種表節點,它同時具有指向鏈中前一個節點和下一個節點的引用。也可以指一種鏈表結構,它由雙向鏈接點組成。

表節點(list node):一個對象,包含一個元素以及指向另一個表節點的引用。表節點可以在鏈中串接起來。

隨機訪問(rendom access):允許訪問任意節點,如數組或DVD。

順序訪問(sequential accesss):只允許通過遍歷期間的點來進行訪問,如鏈表結構或VHS磁帶。

兩只算法(two-finger algorithm):需要記錄兩個連續表節點的算法。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • //leetcode中還有花樣鏈表題,這里幾個例子,冰山一角 求單鏈表中結點的個數----時間復雜度O(n)這是最...
    暗黑破壞球嘿哈閱讀 1,533評論 0 6
  • 一.線性表 定義:零個或者多個元素的有限序列。也就是說它得滿足以下幾個條件:??①該序列的數據元素是有限的。??②...
    Geeks_Liu閱讀 2,714評論 1 12
  • 鏈表(Linked-list) 前面我們討論了如何使用棧、隊列進行存數數據,他們其實都是列表的一種,底層存儲的數據...
    Cryptic閱讀 38,920評論 7 57
  • 鏈表 概念 說到鏈表,coder們都不會陌生,在日常開發中或多或少都會用到它。它是鏈式存儲的線性表,簡稱鏈表。鏈表...
    扈扈哈嘿閱讀 2,089評論 0 5
  • java筆記第一天 == 和 equals ==比較的比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量...
    jmychou閱讀 1,518評論 0 3