鍊錶基本概念和實現

2021-08-17 05:55:15 字數 1546 閱讀 1685

1. 鍊錶的基本形式

鍊錶是一種最為簡單的資料結構,它的主要目的是依靠引用關係來實現多個資料的儲存。

鍊錶由乙個個節點組成,下面我們來定義乙個節點類

class node

public void setnext(node next)

public node getnext()

public string getdata()

}以上只是乙個專門儲存節點關係的類,但是怎麼儲存關係,並不是node類執行。

範例:使用第一種形式設定和取出資料

public class linkdemo}}

實際上以上操作使用的迴圈並不方便,最好還是應該使用遞迴操作完成,遞迴更加直白。

範例:使用第二種形式設定和取出資料

public class linkdemo

public static void print(node current)

system.out.println(current.getdata());

print(current.getnext());}}

疑問?整個過程完成的功能就是乙個設定資料和取資料的過程,為什麼需要node呢?

由於資料本身不具備先後的關係,所以使用node類來封裝資料,同時利用node類來指向下乙個節點。

2.鍊錶的基本雛形

通過分析發現:使用者在操作的過程中完全沒有必要去關心node類是否存在;所有的節點的引用關心不應該由使用者處理,應該有乙個專門的工具類去處理。

下面需要定義乙個link類,來幫助客戶端去隱藏所有的鍊錶中給出的細節操作。

class node

public void setnext(node next)

public node getnext()

public string getdata()

//實現節點的新增

//第一次呼叫(link):this = link.root

//第二次呼叫(node): this = link.root.next

//第三次呼叫(node): this = link.root.next.next

public void addnode(node newnode)else}//

第一次呼叫(link): this = link.root

// 第二次呼叫(node):this = link.root.next

//第三次呼叫(node): this = link.root.next.next

public void printnode()}}

class linkelse

}public void print()}}

public class linkdemo

}通過以上的**,可以發現鍊錶的基本操作特點:

a. 客戶端不用去關注具體的node以及引用關係的細節,只關注提供資料和取出資料;

b. link類的主要功能是控制node類物件的產生和根節點;

c. node類主要負責資料的儲存以及引用關係的分配。

鍊錶的基本概念以及靜態鍊錶和動態鍊錶

鍊錶概念 鍊錶使用說明 畫圖示意 建立關係 node1.next node2 node2.next node3 node3.next node4 node4.next node5 node5.next null lk struct linknode lk nodecurrent node1 遍歷輸出...

基本概念 程式設計師基本功 鍊錶的基本概念

程式設計師必須掌握資料結構 資料結構中必講鍊錶 所以,程式設計師必須掌握鍊錶 鍊錶是資料元素的線性集合 linear collection 物理儲存不連續。那麼,這種設計的優點是什麼?缺點又是什麼?鍊錶的基本結構 鍊錶是由一系列的 節點 組成在一起的集合,節點 node 由資料域 data 和指標域...

雜湊表 基本概念

雜湊表,又稱為雜湊表,是一種根據鍵來直接訪問記憶體位置的一種資料結構。它通過乙個計算鍵值的函式 雜湊函式 來將所查詢的資料對映到雜湊表中的乙個位置來查詢該位置的內容,從而達到快速查詢的目的。存放記錄的陣列就稱為雜湊表 若關鍵字為k,則其值就存放在f k 對應的位置上,這樣可以實現不用比較就可以直接找...