美文网首页
golang实现单链表

golang实现单链表

作者: 清晨的麦田 | 来源:发表于2019-07-11 10:48 被阅读0次
package main

import (
    "sync"
    "fmt"
)

func main() {
    node := Instance()
    node.Name = "张三"

    node1 := &Node{Name: "李四"}
    node2 := &Node{Name: "赵武"}
    node3 := &Node{Name: "李刘"}
    InsertNode(node, node1)
    InsertNode(node, node2)
    InsertNode(node, node3)

    ListNode(node)
}

type Node struct {
    Name    string
    NodePtr *Node
}

var node *Node
var once sync.Once

func Instance() (*Node) {
    once.Do(func() {
        if node == nil {
            node = &Node{}
        }
    })
    return node
}

//单链表追加节点
func InsertNode(oldNode, newNode *Node) {
    for {
        if oldNode.NodePtr == nil {
            break
        }
        //地址指向下一个节点的地址
        oldNode = oldNode.NodePtr
    }
    oldNode.NodePtr = newNode
}

func ListNode(node *Node) {
    if node.NodePtr == nil {
        return
    }
    for {
        fmt.Printf("NodeName==>%s==>", node.Name)
        node = node.NodePtr
        if node.NodePtr == nil {
            fmt.Printf("NodeName==>%s", node.Name)
            break
        }
    }

}

输出结果

NodeName==>张三==>NodeName==>李四==>NodeName==>赵武==>NodeName==>李刘
Process finished with exit code 0

相关文章

  • 数据结构——Golang实现单链表

    转载请注明出处:数据结构——Golang实现单链表 1. 单链表 1.1. 定义 单向链表(单链表)是链表的一种,...

  • golang 实现单链表

    单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个...

  • golang实现单链表

    输出结果

  • golang单链表的实现

    实现部分在linkedList包里面,具体实现的功能有:1.判断是否为空的单链表2.单链表的长度3.获取头节点4....

  • 线性表之单链表实现

    线性表之单链表实现 实现单链表的初始化、插入、删除等基本运算 实现单链表的输入、输出运算 实现单链表的逆置、归并、...

  • 25_静态单链表的实现

    关键词: 单链表的一个缺点、静态单链表设计思路、静态单链表的继承层次结构、静态单链表的实现思路、静态单链表的实现 ...

  • 链表基本操作

    1、删除单链表节点 2、插入单链表结点 单链表具体实现

  • 单链表 & 双链表& 单向循环链表的实现

    单链表 具体实现: 双链表 代码实现: 单向循环链表的实现 代码实现:

  • 链表

    单链表 C实现 Java实现 双链表 C实现 Java实现

  • leetcode 单链表的各种算法

    1 递归实现:合并两个有序的单链表 2 递归实现:单链表逆序存入vector 3 循环实现:快慢指针找到单链表中间...

网友评论

      本文标题:golang实现单链表

      本文链接:https://www.haomeiwen.com/subject/pmrrkctx.html