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...