![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 70
爱写代码的马良
强者不屈于命运。
展开
-
定时器之多层级时间轮
定时器之多层级时间轮定时器应用心跳检测倒计时武器/技能冷却其它需要使用超时机制的功能数据结构实现定时器常见的数据结构有红黑树,最小堆,跳表,时间轮。这里需要特别说明的是对于最小堆,我们需要借助map来快速索引到节点。实现代码此处用时间轮来实现定时器spinlock.h#ifndef SPINLOCK_H#define SPINLOCK_Hstruct spinlock { int lock;};void spinlock_init(struct spinlock *l原创 2022-04-25 10:13:14 · 821 阅读 · 0 评论 -
布隆过滤器
布隆过滤器定义布隆过滤器是一种概率型数据结构,它的特点是高效的插入和查询,能明确告知某个字符串一定不存在或者可能存在。布隆过滤器相比传统的查询结构(例如:hash,set,map等数据结构)更加高效,占用空间更小;但是其缺点是它返回的结果是概率性的,也就是说结果存在误差的,虽然这个误差是可控的;同时它不支持删除操作;组成:位图(bit数组)+ n个hash函数原理当一个元素加入位图时,通过k个hash函数将这个元素映射到位图的k个点,并把它们置为1;当检索时,再通过k个h原创 2022-02-22 15:52:46 · 404 阅读 · 0 评论 -
详解二叉树
1. 二叉树基本概念定义:n(n≥0)个结点的有限集合,由一个根结点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成 。逻辑结构:一对二(1:2)基本特征:每个结点最多只有两棵子树(不存在度大于2的结点)左子树和右子树次序不能颠倒(有序树)。基本形态:二叉树性质性质1: 在二叉树的第i层上至多有2i-1个结点(i>0)性质2: 深度为k的二叉树至多有2k-1个结点(k>0)性质3: 对于任何一棵二叉树,若度为2的结点数有n2个原创 2022-01-27 10:18:19 · 896 阅读 · 0 评论