go語言實現單鏈表

2021-09-28 19:00:55 字數 1602 閱讀 6566

package main

import "fmt"

//節點結構體

type node struct

//鍊錶類

type list struct

//建立節點

func createnode(data int) *node

}//建立鍊錶

func newlist() *list,

0, }}

//列印鍊錶

func (l *list)displist()

fmt.printf("\n")

}//求鍊錶長度

func (l *list)listlength()int

//獲得索引值

func (l *list)getelem(index int) int

if pre == nil else

}//獲得索引值

func (l *list)locateelem(data int) int

if pre == nilelse

}//插入節點

func (l *list)listinsert(i, data int)bool

pre := l.head

var j int = 0

for j < i-1 && pre != nil

if pre == nil else

}//刪除節點

func (l *list)listdelete(i int)bool

pre := l.head

j := 0

for j < i-1 && pre != nil

if pre == nilelse

pre.next = q.next

return true }}

//判斷鍊錶是否為空

func (l *list)isempty()bool

return false

}//建立鍊錶

func (l *list)createlist(arr int, n int)bool

r.next = nil

l.length = n

return true

}//查詢最後乙個值為x的節點序號

func (l *list)findlastvalue(x int)int

} return j

}func main()

list := newlist()

list.createlist(arr, 5)

fmt.printf("list length = %d\n", list.listlength())

list.displist()

fmt.printf("%d\n", list.getelem(2))

fmt.printf("%d\n", list.locateelem(4))

list.listinsert(2,8)

list.displist()

list.listdelete(2)

list.displist()

fmt.printf("%d\n", list.findlastvalue(4))

}

單鏈表 Go語言實現

單鏈表 雙鏈表 環形鍊錶 head a1 a2 a3 有了頭結點後,對在第乙個元素結點前插入結點和刪除第乙個結點,其操作與對其它結點的操作統一了。優點 缺點 使用場景 不清楚總體大小,且需要頻繁的插入或刪除操作 type linknode struct data使用介面,可以為任意型別,範性 nex...

c語言實現單鏈表

一 使用簡介 使用c語言實現了單鏈表的基本操作,共有四個檔案,兩個標頭檔案是常用的,後兩個分別是主函式,和對鍊錶的基本操作函式,倒入時候,須將四個檔案放在同乙個目錄下。二 心得 在書寫過程中,主要錯誤集中在指標的使用上,通過此次程式設計,對於指標的認識更加深刻,頭結點的存在,更大意義上是為了簡化指標...

C語言實現單鏈表

單鏈表可以說是基礎,有利於對指標的使用 結點 typedef int datatype typedef struct slistnode slistnode 實現的函式的宣告如下 slistnode buynode datatype x void printslist slistnode phead...