源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Go语言单链表实现方法

  • 时间:2021-12-18 13:18 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Go语言单链表实现方法
本文实例讲述了Go语言单链表实现方法。分享给大家供大家参考。具体如下: 1. singlechain.go代码如下:
[u]复制代码[/u] 代码如下:
////////// //单链表 -- 线性表 package singlechain //定义节点 type Node struct {     Data int     Next *Node } /* * 返回第一个节点 * h 头结点  */ func GetFirst(h *Node) *Node {     if h.Next == nil {         return nil     }     return h.Next } /* * 返回最后一个节点 * h 头结点  */ func GetLast(h *Node) *Node {     if h.Next == nil {         return nil     }     i := h     for i.Next != nil {         i = i.Next         if i.Next == nil {             return i         }     }     return nil } //取长度 func GetLength(h *Node) int {     var i int = 0     n := h     for n.Next != nil {         i++         n = n.Next     }     return i } //插入一个节点 //h: 头结点 //d:要插入的节点 //p:要插入的位置 func Insert(h, d *Node, p int) bool {     if h.Next == nil {         h.Next = d         return true     }     i := 0     n := h     for n.Next != nil {         i++         if i == p {             if n.Next.Next == nil {                 n.Next = d                 return true             } else {                 d.Next = n.Next                 n.Next = d.Next                 return true             }         }         n = n.Next         if n.Next == nil {             n.Next = d             return true         }     }     return false } //取出指定节点 func GetLoc(h *Node, p int) *Node {     if p < 0 || p > GetLength(h) {         return nil     }     var i int = 0     n := h     for n.Next != nil {         i++         n = n.Next         if i == p {             return n         }     }     return nil }
2. main.go代码如下:
[u]复制代码[/u] 代码如下:
package main import "fmt" import "list/singlechain" func main() {     //初始化一个头结点     var h singlechain.Node     //往链表插入10个元素     for i := 1; i <= 10; i++ {         var d singlechain.Node         d.Data = i         singlechain.Insert(&h, &d, i)         fmt.Println(singlechain.GetLoc(&h, i))     }     fmt.Println(singlechain.GetLength(&h))     fmt.Println(singlechain.GetFirst(&h))     fmt.Println(singlechain.GetLast(&h))     fmt.Println(singlechain.GetLoc(&h, 6)) }
希望本文所述对大家的Go语言程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部