go語言實現鍊錶

2021-08-20 02:28:37 字數 1548 閱讀 8373

宣告結構體

//宣告全域性變數,儲存頭結點

var head *node

var curr *node

//宣告節點型別

type node struct

//建立頭結點

func createheadnode(data string) *node

//新增新節點

func addnode(data string) *node

//遍歷鍊錶

func shownodes() else

}}

//計算節點的個數

func nodecnt() int else

} return cnt

}

//插入節點

func insertnodebyindex(index int, data string) *node else if index > nodecnt()-1 else

var newnode *node = new(node)

newnode.data = data

newnode.nextnode = n.nextnode

n.nextnode = newnode

} return nil

}

//刪除節點

func deletenodebyindex(index int) else

node.nextnode = node.nextnode.nextnode

}}

//修改指定下標的節點內容

func updatenodebyindex(index int, data string) else

node.data = data

}}

package main

import (

"myhashmap/linknodes"

"fmt"

)func main()

hello world!

頭結點第二節點

第三節點

第四節點

4

func main()
結果:

hello world!

頭結點第二節點

第三節點

新節點第四節點

5

func main()
結果:

hello world!

頭結點abc

第三節點

新節點第四節點

5

Go語言 實現鍊錶

鍊錶是乙個結點指向下乙個結點的儲存結構,每乙個結點有兩個元素,乙個是存放資料本身,另乙個資料指向下乙個結點,由這些結點組成乙個鍊錶 package main import fmt type node struct type nodelist struct func this nodelist add...

go語言實現 雙向迴圈鍊錶

雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。一般我們都構造雙向迴圈鍊錶。如下 package doublelinkedlist import errors fmt typ...

雙向鍊錶的GO語言實現

一 什麼是雙向鍊錶 和單鏈表比較,雙向鍊錶的元素不但知道自己的下線,還知道自己的上線 越來越像傳銷組織了 小煤車開起來,圖裡面可以看出,每個車廂除了乙個指向後面車廂的箭頭外,還有乙個指向前面車廂的箭頭 車頭 車尾除外 車頭只有指向後面車廂的箭頭,車尾只有指向前面車廂的箭頭。二 雙向鍊錶與go的對應結...