![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
qq_1536161955
这个作者很懒,什么都没留下…
展开
-
go Ring(环形链表)源码解读与应用
首先是环形链表的结构与初初始化type Ring struct { next, prev *Ring Value interface{} // for use by client; untouched by this library}func (r *Ring) init() *Ring { r.next = r r.prev = r return r} ...原创 2018-09-13 11:26:51 · 1257 阅读 · 0 评论 -
跳表skip list 代码实现与应用场景
跳表是一种用来增加元素查找速度的数据结构。他是由一条有序的单链表演变而成。他把单链表由一层变为了多层,越往上,元素数量越少。每个在单链表上的元素,都有一个level,level等于几,就从下往上占几层。这个level是有一个算法随机生成的。(实际每个元素都只有一个,占几层是通过切片指针来实现的)当进行查找的时候,从头节点开始,往右往下查找元素(如图查找117 118 (图是盗的))。...原创 2018-09-11 20:08:27 · 2145 阅读 · 0 评论 -
go语言实现二叉排序树及其前序遍历
结构 左右指针和存值的一个int (这边其实可以再添加一个指向根节点的指针,那所有节点都可以获得根节点)type AVL struct{ left,right *AVL value int}获取左右节点的指针func (a *AVL)getLeft()(*AVL) { if a.left != nil{ return a.left } return nil}...原创 2018-09-18 10:13:38 · 455 阅读 · 0 评论 -
go语言实现二叉堆
首先是二叉堆的原理参考https://mp.weixin.qq.com/s/IDdhuPO3KRVWHLFmHBLXPg 他文章中的java代码好像有点问题 这边好像不应该-1 接下来是go的实现 增加了判断最小堆的代码package mainimport "fmt"//上浮 最小堆func up(arr []int,childIndex in...原创 2018-09-25 09:50:22 · 389 阅读 · 0 评论 -
数据结构面试题
1.如何判断图有环对于无向图,1)深度优先遍历,如果有节点被遍历了两次,就说明有环2)去掉度<=1的节点以及他的指针,如果最后还存在节点,则说明有环对于有向图,1)深度优先遍历,如果有节点被遍历了两次,就说明有环2)拓扑排序...原创 2018-10-17 09:57:50 · 928 阅读 · 0 评论