加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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)
}

运行结果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读