宣告結構體
//宣告全域性變數,儲存頭結點
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的對應結...