golang数据结构之单链表
发布时间:2020-12-16 09:18:08 所属栏目:大数据 来源:网络整理
导读:实现单链表的增删查改。 目录如下: singleLink.go package linkimport ( " fmt " ) // HeroNode 链表节点 type HeroNode struct { ID int Name string next *HeroNode 指针 } InsertHeroNode 插入 func InsertHeroNode(head *HeroNode,newHeroNode * HeroNo
实现单链表的增删查改。 目录如下: singleLink.go package link import ( "fmt" ) //HeroNode 链表节点 type HeroNode struct { ID int Name string next *HeroNode 指针 } InsertHeroNode 插入 func InsertHeroNode(head *HeroNode,newHeroNode *HeroNode) { tmp := head for { if tmp.next == nil { break } tmp = tmp.next } tmp.next = newHeroNode } InsertHeroNodeByID 根据id从小到大插入 func InsertHeroNodeByID(head *HeroNode,1)"> head nil { tmp.next = newHeroNode } if tmp.next.ID > newHeroNode.ID { tmp2 := tmp.next tmp.next = newHeroNode newHeroNode.next = tmp2 } else if tmp.next.ID == newHeroNode.ID { fmt.Printf(已经存在id为%d的节点n,tmp.next.ID) else { tmp = tmp.next } } } DeleteHeroNode 删除 func DeleteHeroNode(head *HeroNode,ID ) { tmp := nil { fmt.Println(链表中没有该id) ID { if tmp.next.next == nil { tmp.next = nil } { tmp2 := tmp.next.next tmp.next = tmp2 } tmp.next } } } FindHeroNode 查找 func FindHeroNode(head *HeroNode,1)"> ID { fmt.Println(找到了该idModifyHeroNode 修改 func ModifyHeroNode(head *HeroNode,1)">int,changeName ID { tmp.next.Name = changeName ListHeroNode 显示信息 func ListHeroNode(head * nil { fmt.Println(链表为空) return } { fmt.Printf(节点信息如下:id=%d,name=%sn tmp.next 已显示所有信息 } } } main.go package main import go_code/data_structure/link func main() { head := &link.HeroNode{} hero1 := &link.HeroNode{ ID: 1宋江2李逵4林冲3武松 link.InsertHeroNode(head,hero1) link.InsertHeroNodeByID(head,hero2) link.InsertHeroNodeByID(head,hero1) link.InsertHeroNodeByID(head,hero4) link.InsertHeroNodeByID(head,hero3) link.DeleteHeroNode(head,) link.FindHeroNode(head,1)">) link.ModifyHeroNode(head,1)">4,我是修改后的英雄) link.ListHeroNode(head) } 运行结果: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |