![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 82
~|Bernard|
人在考研 有文章代码出错谨请见谅研后再与各位大佬进行指正交流
展开
-
C++之哈希表的应用(位图,布隆过滤器,海量数据处理,哈希切割)
比如:在布隆过滤器中查找"alibaba"时,假设3个哈希函数计算的哈希值为:1、3、7,刚好和其他元素的比特位重叠,此时布隆过滤器告诉该元素存在,但是该元素是不存在的,所以判断元素在库中是不准确的,但是如果布隆过滤器告诉该元素不存在,那么一定不存在,因为相同字符串经过哈希函数过后算出来的整数都是一样的,所以判断元素不在库中是非常准确的.比如:删除上图中"tencent"元素,如果直接将该元素所对应的二进制比特位置0,“baidu”元素也被删除了,因为这两个元素在多个哈希函数计算出的比特位上刚好有重叠。原创 2022-10-11 20:18:17 · 607 阅读 · 0 评论 -
C++之哈希表(开散列和闭散列)
比如删除元素4,如果直接删除掉,44查找起来可能会受影响(因为如果删除4这个位置的值,查找44的时候会根据哈希函数先查找4这个位置,如果4为空了就不会再往后继续查找,所以44就不知道是否存在这个哈希表中,存在误判)。比如2.1中的场景,现在需要插入元素44,先通过哈希函数计算哈希地址,44%10=4,因此44理论上应该插在该4位置,但是该位置已经放了值为4的元素,即发生哈希冲突。对元素的关键码进行同样的计算,把求得的函数值当做元素的存储位置,在结构中按此位置取元素比较,若关键码相等,则搜索成功。原创 2022-10-09 20:43:56 · 842 阅读 · 0 评论 -
C++之AVL树和红黑树
因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整),即可降低树的高度,从而减少平均搜索长度。因为AVL树也是二叉搜索树,可按照二叉搜索树的方式将节点删除,然后再更新平衡因子,只不过与删除不同的是,删除节点后的平衡因子更新,最差情况下一直要调整到根节点的位置。,更差的是在删除时,有可能一直要让旋转持续到根的位置。原创 2022-09-27 19:10:56 · 693 阅读 · 0 评论 -
数据结构之二叉搜索树
所以实际中搜索二叉树,极端情况下没有办法保证效率,所以后面会对搜索二叉树进一步扩展延申:AVLTree,红黑树.他们对搜索二叉树,左右高度提出了要求,非常接近完全二叉树,他们的效率可以达到O(logN)对有n个结点的二叉搜索树,若每个元素查找的概率相等,则二叉搜索树平均查找长度是结点在二叉搜索树的深度的函数,即。再比如统计单词次数,统计成功后,给定单词就可快速找到其出现的次数,单词与其出现次数就是。·为键值对构造二叉搜索树,注意:二叉搜索树需要比较,a. 树为空,则直接插入。原创 2022-09-19 21:02:39 · 896 阅读 · 0 评论 -
数据结构课程设计之火车票订票系统实现(C语言/C++版本)
课题描述 编制一个程序,火车票订票的业务活动包括:车次查询、订票、退票、用户管理等。需求分析 用户信息包括用户姓名、身份证号、用户电话、用户所购列车号、订单号;列车信息包括:列车车站号、车票起点、车票终点、出发时间、到达时间、票价、票数等基本信息。 软件需要实现以下功能: (1)录入:可以录入车次(车次号、车站1、车站2...、余票)、客户等数据; (2)查询车次:车次及分段余票信息; (3)订票业务:根据客户提出的要求(车次、起点、终点、订票数额)查询票额情况,若尚有余额,则为客户.原创 2022-05-04 20:49:47 · 20781 阅读 · 26 评论 -
数据结构之SWUSTOJ965循环队列and Leetcode622设计循环队列。对循环队列的一点思考。(数组和链表两种方式实现循环队列)
题目:思路:代码:622. 设计循环队列 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/design-circular-queue/循环队列是队列的一种 顺序 存储结构。 循环队列的引入,目的是为了克服 假溢出时大量移动数据元素 。 在循环队列中,队列长度为n,存储位置从0到n-1编号,以rear指示实际的队尾元素,现要在此队列中插入一个新元素,新元素的位置是 rear= (rear+原创 2022-04-16 16:13:46 · 1381 阅读 · 5 评论 -
数据结构之栈和队列-2022-3-11
1.栈1.1栈的概念及结构1.2栈的实现3.栈和队列面试题4.概念选择题原创 2022-04-08 16:16:43 · 272 阅读 · 0 评论 -
数据结构之七大排序-2022-3-21
·1.排序的概念及其运用·2.常见排序算法的实现·3.排序算法复杂度及稳定性分析1.排序的概念及其运用1.1排序的概念排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元原创 2022-03-25 13:19:53 · 745 阅读 · 0 评论 -
数据结构之二叉树
1.树概念及结构2.二叉树概念及结构3.二叉树顺序结构及实现4.二叉树链式结构及实现1.树概念及结构1.1树的概念1.2 树的相关概念1.3 树的表示1.4 树在实际中的运用(表示文件系统的目录树结构)2.二叉树概念及结构2.二叉树概念及结构2.2现实中的二叉树:2.3特殊的二叉树:2.4 二叉树的性质2.5 二叉树的存储结构...原创 2022-03-21 18:11:29 · 656 阅读 · 0 评论 -
数据结构之二叉树基础oj练习
1.单值二叉树力扣https://leetcode-cn.com/problems/univalued-binary-tree/以上是递归图解思路:这样的思路非常不好想到。也就是利用了我们的分治思想和逆向思维。首先说说这里的分治思想:分治也就是要一层一层地分治下去判断。第一个if语句在这里起到了非常关键的作用,为什么这样说呢?这个if函数我们设计者的本意可能是防止root为空时,那么也属于单值二叉树,但是听过我们画了递归图后发现,这个if函数竟然在后面强大地起到了判断..原创 2022-03-21 18:09:43 · 489 阅读 · 0 评论 -
数据结构之链表-2022-3-6
1.链表1.1 链表的概念及结构3.2 链表的分类实际中链表的结构非常多样,以下情况组合起来就有8种链表结构1.单向或者双向原创 2022-03-13 14:10:44 · 238 阅读 · 0 评论 -
数据结构之顺序表-2022-3-4
1.线性表2.顺序表2.1概念及结构动态顺序表:使用动态开辟的数组存储。2.2 接口实现静态顺序表只适用于确定知道需要存多少数据的场景。静态顺序表的定长数组导致N定大了,空间开多了浪费,开少了不够用。所以现实中基本都是使用动态顺序表,根据需要动态的分配空间大小,所以下面我们实现动态顺序表2.3 数组相关面试题力扣https://leetcode-cn.com/problems/remove-element/力扣https...原创 2022-03-06 14:49:09 · 249 阅读 · 0 评论