摘要: 字典在很多高级语言里都有,比如 1. js的对象结构可以当字典来用 2. python的字典 3. go的map 4. ...................... 但是你们知道字典是怎么实现的吗?本文来实现一个简单的字典。 python的字典 先来看python的字典是怎样的 c语言实现 参考了 阅读全文
posted @ 2020-03-23 22:26 jkjkjkjkjkjk 阅读(304) 评论(0) 推荐(0)
摘要: 参照了 Redis 里面的双链表结构,可以说是完全复制粘贴,redis的双链表还是写的很通俗易懂的,没有什么花里胡哨的东西,但是redis还有个 iter 迭代器的结构来遍历链表。我这里就没有实现了,只是实现了双链表的基本操作 redis双链表结构有如下特点 1. 多态:可以储存多种数据类型 2. 阅读全文
posted @ 2020-03-23 16:48 jkjkjkjkjkjk 阅读(418) 评论(0) 推荐(0)
摘要: 关闭原则 一个常用的使用Go通道的原则是不要在数据接收方或者在有多个发送者的情况下关闭通 道。 通用的原则是不要关闭已关闭的通道 错误关闭 go func Write(dataCh chan int){ for{ if value:=rand.Intn(1000);value!=0{ time.Sl 阅读全文
posted @ 2020-03-22 14:31 jkjkjkjkjkjk 阅读(891) 评论(0) 推荐(0)
摘要: 1、读写 2、管道实现定时通知 3、管道实现互斥锁 阅读全文
posted @ 2020-03-22 14:29 jkjkjkjkjkjk 阅读(1910) 评论(0) 推荐(0)
摘要: 1、管道分类 读写管道 只读管道 只写管道 缓冲通道 :创建时指定大小(如果不指定默认为非缓冲通道) 2、正确使用管道 1. 管道关闭后自能读,不能写 2. 写入管道不能超过管道的容量 cap ,满容量还写则会阻塞 3. 管道为空时,如果没有关闭,则继续读取会阻塞当前线程,直到有东西写入管道 4. 阅读全文
posted @ 2020-03-22 14:25 jkjkjkjkjkjk 阅读(1237) 评论(0) 推荐(0)
摘要: 堆和优先队列 堆 : 分大顶堆和小顶堆,这里实现的是小顶堆,也就是说父亲节点一定小于孩子节点,不像 "二叉排序树" 这样,堆对子节点之间的大小没有限制,限制的仅仅只有一个条件, 父亲一定比孩子节点小 ,这就是 小顶堆 ,大顶堆则相反 优先队列 :堆中的每个元素都带有一个优先级,入队是无序的,出队是有 阅读全文
posted @ 2020-03-21 09:49 jkjkjkjkjkjk 阅读(402) 评论(0) 推荐(0)
摘要: Trie树、字典树、前缀树 个人认为这种树最好的叫法叫 前缀树 ,比较好理解。 前缀树 一般用来处理string查找问题,是一种高效的处理字符串相关问题的树形数据结构。 典型应用场景 trie树本人见过的最典型的应用就是在 web路由匹配查找 上,路由一般包括了很多字符串,并且需要和路由对应的处理函 阅读全文
posted @ 2020-03-19 10:14 jkjkjkjkjkjk 阅读(209) 评论(0) 推荐(0)
摘要: 线性探测法 哈希表结构体 计算哈希算法,这里采用最常用的求余数法 插入元素,线性探测法 就是如果发生碰撞,就一直往前寻找空位子,所以P这个参数会影响碰撞的次数 删除元素 可执行的完整代码 c++ include include using namespace std; define MAX 10 d 阅读全文
posted @ 2020-03-19 10:09 jkjkjkjkjkjk 阅读(535) 评论(0) 推荐(0)
摘要: 跳表因为其结构简单,对于一些高效的数据结构 红黑树 、 B树 等来说相对简单且容易实现。在应用方面也很广泛,比如著名的中间件 Redis 里面的 Zset 就用到了跳表来实现高效查询和排序 下面直接上代码 定义结构体 forward[MaxLevel] 是一个Node指针类型,用于当前节点指向的下一 阅读全文
posted @ 2020-03-17 20:02 jkjkjkjkjkjk 阅读(1036) 评论(0) 推荐(0)
摘要: 数组 数组表示二叉树: root left:root 2+1 right:root 2+2 比如 0号节点的左孩子是1 右孩子是2 1号节点的左孩子是3 右孩子是4 2号节点的左孩子是5 右孩子是6 1、定义结构体 2、找树的最小值和最大值的节点位置 3、插入节点 4、判断节点是否存在 5、中序遍历 阅读全文
posted @ 2020-03-15 10:42 jkjkjkjkjkjk 阅读(423) 评论(0) 推荐(0)