簡潔且簡單的去理解鍊錶

2021-10-04 19:49:26 字數 1270 閱讀 3534

剛剛開始學習簡單資料結構,看了許多大佬的鍊錶仍然不是很懂,仔細想過之後終於明白,當作筆記記錄一下

①鍊錶概念:

通俗意義上講,鍊錶就是鏈結起各個儲存空間的線性表,特點就是單向鏈結可以逐級遍歷(單項),一級一級將資料串聯起來,使得資料具有連續性,但連續性為抽象上的連續而不是物理上的連續,例如第乙個的記憶體空間的位址為0x0123, 第二個記憶體空間的位址可能為0x256, 兩者物理上不連續,但由於結構體內第一級的next指標中存放第二級的首位址,則兩者抽象上連續。

②鍊錶構成部分:

鍊錶構成部分:資料域&&指標域

例如上圖中所畫,我們將乙個結點分成兩部分,一部分儲存我們需要的data(即資料域)另一部分設為結構體指標使它指向下乙個結構體變數(即next指標,指標域),也就是我們的第二個節點,這樣第乙個和第二個結點就串連起來了。

鍊錶的構造方法主要為頭插法尾插法兩種,下面都將由**實現。鍊錶的基本操作為增、刪、改、查,具體實現這裡不闡述。

——尾插法

重點理解頭指標不移動動,將尾指標向後移動,並通過next指標直接指向下乙個結點,由此實現串聯。

//尾插法構造單鏈表

typedef

struct list

;struct list *head=

null

,*tail=

null

;//規定出鍊錶的頭與尾

struct list *

createlist()

——頭插法

相當於尾插法的相反版本,利用尾指標不動,將新建立的結點插入到現有節點之前,並將頭結點前移,並由此實現串聯。

//頭插法構造單鏈表

typedef

struct list

;struct list *head=

null

,*tail=

null

;struct list *

creatlist()

第一次寫部落格,希望各位大佬能夠將錯誤及時指出並且提出改進的建議!

鍊錶的理解

鍊錶的理解 開發工具與關鍵技術 visual studio c 鍊錶,通過這段時間對鍊錶的理解。最終有了個人的理解。我對鍊錶的理解呢,就是乙個節點乙個節點連線起來的。節點由我們的資料結構構成,我們可以用 struct,class 去建立節點。開始的時候我也有嘗試著去用 union 去做連表,但是得出...

簡單理解鍊錶與區塊鏈 blockchain

區塊鏈 類似於c語言裡的鍊錶,其中 區塊 相當於鍊錶中的node節點,node節點之間相互串聯形成 鏈 鍊錶的概念 如圖 換一種 實現 方式,每個石柱儲存下乙個石柱的經緯座標,進而可以準確找到下乙個節點。現實中的 鍊錶 是用鐵鍊拴住的一根一根的石柱,而在c語言中,石柱被替換成了乙個struct結構體...

無序鍊錶的去重問題

給定乙個鍊錶,無序的,去除其中重複的數字後返回。solution1 雜湊表法 建立乙個雜湊表,遍歷鍊錶的節點,雜湊表中已經存在該節點的就刪除,否則將其加進雜湊表中。時間複雜度o n 空間負責度o 256 solution2 若不能申請額外的空間,即空間複雜度為0,則雙層遍歷鍊錶中的節點,當前節點與已...