golang双链表的实现代码示例-创新互联
双链表的实现
基本概念
每一个节点都存储上一个和下一个节点的指针
实现思路
创建一个节点结构体
- 每个节点都有上节点指针与下节点指针
- 每个节点都有一个key => value
创建一个链表结构体
- 链表容量大小属性
- 链表大小属性
- 链表锁, 实现并发安全
- 链表头节点
- 链表尾节点
实现链表操作方法
- 添加头部节点操作AppendHead
- 添加尾部节点操作AppendTail
- 追加尾部节点操作Append
- 插入任意节点操作Insert
- 删除任意节点操作Remove
- 删除头部节点操作RemoveHead
- 删除尾部节点操作RemoveTail
- 获取指定位置的节点Get
- 搜索任意节点Search
- 获取链表大小GetSize
- 打印所有节点操作Print
- 反转所有节点操作Reverse
总结
- 学好算法是一个不断积累的过程
- 学习时还需做到知行合一
- 实现时需要多做用例测试.
代码解析
定义节点的结构体
type DoubleNode struct { Key int //键 Value interface{} //值 Prev *DoubleNode //上一个节点指针 Next *DoubleNode //下一个节点指针 Freq int //频率次数.为了给LFU使用的 }
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章名称:golang双链表的实现代码示例-创新互联
标题网址:http://cdiso.cn/article/dshijh.html