golang实现单链表

清晨的麦田 · 2019-07-11 11:32:42 · 2932 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2019-07-11 11:32:42 的文章,其中的信息可能已经有所发展或是发生改变。

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实现单链表

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2932 次点击  
加入收藏 微博
2 回复  |  直到 2022-01-01 11:58:26
douke0320
douke0320 · #1 · 3年之前

Casbin开源社区推出开源身份认证、单点登录框架Casdoor! 开源地址:https://github.com/casbin/casdoor 在线演示:https://door.casbin.com/ 技术文档:https://casdoor.org/docs/overview 目前支持以下特性:

  1. 前后端分离架构,Go语言开发,支持高并发,具有Web可视化管理界面,支持多语言(中文、英文)
  2. GitHub, Google, QQ, 微信等几十种OAuth 2.0第三方登录,支持阿里云IDaaS、KeyCloak等SAML第三方登录,支持以插件方式扩展新的第三方登录提供商,支持LDAP协议用户信息同步
  3. 基于Casbin的角色管理、组管理、权限管理,支持ACL、RBAC、ABAC、RESTful等访问控制模型
  4. 手机验证码、邮箱验证码、忘记密码
  5. 访问日志审计、记录
  6. 支持AWS S3、阿里云、腾讯云、七牛云等十几种图片、附件的CDN云存储
  7. 自定义注册、登录、忘记密码等页面
  8. 支持以db sync方式实现与现有账户系统的整合,可以平稳过度到Casdoor
  9. 支持主流数据库:MySQL, PostgreSQL, SQL Server等,支持以插件方式扩展新的数据库
polaris
polaris · #2 · 3年之前

这评论跟文章有啥关系呢? @douke0320

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传