571
社区成员
发帖
与我相关
我的任务
分享1.结构体定义
type LinkNode struct {
nextNode *LinkNode //下一个结点
data interface{} //放数据
}
type LinkTable struct {
head *LinkNode //头结点 不放数据
length int //链表长度
}
2.初始化
//创建链表
func CreateLinkTable() *LinkTable {
newLinkTable := new(LinkTable) //:= 声明并赋值
firstNode := new(LinkNode)
newLinkTable.head = firstNode
newLinkTable.length = 0
return newLinkTable
}
3.链表方法
//删除链表
func DeleteLinkTable(curLinkTable *LinkTable) {
for curLinkTable.length != 0 {
deleteNode := curLinkTable.head.nextNode
curLinkTable.head.nextNode = curLinkTable.head.nextNode.nextNode
curLinkTable.length--
deleteNode.data = nil
deleteNode.data = nil
}
}
/插入指定位置
func insertNode(position int, data interface{}, linkTable *LinkTable) *LinkTable {
if position <= 0 || position > linkTable.length+1 {
fmt.Println("error insert position")
return nil
}
target := new(LinkNode)
target.nextNode = nil
target.data = data
temp := linkTable.head
for i := 0; i < position-1; i++ {
temp = temp.nextNode
}
target.nextNode = temp.nextNode
temp.nextNode = target
linkTable.length++
return linkTable
}
// 删除指定位置
func deleteNode(position int, linkTable *LinkTable) *LinkTable {
if position <= 0 || position > linkTable.length {
fmt.Println("error insert position")
return nil
}
temp := linkTable.head
for i := 0; i < position-1; i++ {
temp = temp.nextNode
}
temp.nextNode = temp.nextNode.nextNode
linkTable.length--
return linkTable
}
//查找指定位置
func findNode(positon int, linkTable *LinkTable) *LinkNode {
if positon <= 0 || positon > linkTable.length {
fmt.Println("error insert position")
return nil
}
temp := linkTable.head
for i := 0; i < positon; i++ {
temp = temp.nextNode
}
return temp
}
//打印链表
func printTable(linktable *LinkTable) {
temp := linktable.head.nextNode
for temp != nil {
fmt.Print(temp.data, " ")
temp = temp.nextNode
}
fmt.Println("")
}
4.测试
Table := CreateLinkTable()
insertNode(1, 3, Table)
insertNode(1, 2, Table)
insertNode(1, 1, Table)
printTable(Table)
fmt.Println("---------------------")
deleteNode(3, Table)
printTable(Table)
fmt.Println(findNode(2, Table).data)

5.分支合并与同步远程仓库
git add *
git status
git commit - m 'sencond commit'
git push origin main

作者:108