
数据结构
文章平均质量分 77
菜鸡逆袭
合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。
展开
-
二叉树先序遍历,中序遍历,后序遍历,层次遍历学习总结及完整C/C++代码
代码只做简要叙述先序遍历先序遍历:先访问根节点, 然后深入左子树,直到不能深入时再深入右子树 由定义可得递归式void travPre_R(BinNodePosi* x,VISIT& visit){ if(!X) return; //到达叶子节点,开始回归 visit(x->data);//向左子树深入的过程中便开始进行对每个节点的数据进...原创 2018-08-30 22:42:54 · 6266 阅读 · 0 评论 -
常用排序算法以及算法性能测试(完整C/C++代码实现)
排序算法的比较注: 由于只是测试算法性能, 所以不会对排序算法做深入讲解, 在随后的时间将会推出排序的详细讲解问题需求分析排序算法经过了很长时间的演变,产生了很多种不同的方法。每种算法主要针对不同的数列进行排序,这些排序算法具有各自的利弊,并且应用的场景各自不同,为了针对不同的场景选出最合适的排序算法,接下来将使用大量随机数列,以及不同的数据场景对不同的排序算法进行比较,最终找出排序算法各自...原创 2019-07-02 23:07:15 · 4210 阅读 · 1 评论 -
哈夫曼树编码与译码(完整C/C++实现代码)
哈夫曼编码的设计与应用问题需求分析用哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。霍夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树...原创 2019-07-02 22:51:06 · 39897 阅读 · 22 评论 -
一个很Low的通讯录管理系统(但是能用)C/C++单链表实现
通讯录管理系统的设计问题需求分析在计算机还未普及之前通讯管理都是由联系人采用名片,通讯录往往采用的是笔录手工记帐的方式来操作的。现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,通讯录管理系统是典型的信息管理系统,其开发主要包括后台文件存储通信用户记录和维护,以及客户...原创 2019-07-02 22:22:12 · 1448 阅读 · 2 评论 -
深度优先搜索小结
深度优先搜索(DFS)深度优先搜索就好比走迷宫, 不断顺着一条路走, 直到走不通为止, 然后回退到上一个路口再向另外的方向行走(走过的方向就不会再走了,又不是傻子, 知道走不通,还向走不通的方向走), 不断重复(试过所有路口, 状态转移), 重复直到找到唯一的一条合适的路径;DFS可以看做是二叉树的先序遍历, 多说无益; 直接上题;例1:给定a1, a2, a3,…an个数, 从中选出若干...原创 2018-09-30 14:53:08 · 5120 阅读 · 0 评论 -
单链表的应用(电话本)
单链表单链表的定义就不说了, 很简单, 请自行百度; 那么从今天的主题<单链表的应用>入手; 利用单链表实现电话本的模拟程序:定义单链表的数据类型,将头插法和尾插法、插入、逆置、删除、查找、修改、计数、输出等操作都定义成子函数的形式,最后在主函数中调用它( 兄弟们调用就不弄了, 自行测试, 增加动手能力 )整个程序最主要的步骤还是插入, 查找, 删除操作, 其他操作都可以围绕这三个...原创 2018-09-28 00:07:47 · 3308 阅读 · 0 评论 -
顺序表的应用__电话本
顺序表的建立及使用顺序表: 就所谓的数组式操作 编程实现顺序存储结构中的基本操作的实现(电话本的建立、插入、删除、修改、逆置、查找、输出) 整个操作过于简陋, 只对上述功能做叙述, 采用结构体数组实现, 本打算用class操作, 可因为某种原因就搁置了……….. 代码中的注释部分是用于测试数据, 电话本只存有number, name//size全局变量表示电话本当前大小不包含0位置,...原创 2018-09-13 03:33:59 · 1532 阅读 · 2 评论 -
递归过程中语句执行顺序
递归的两种模式模式一//递归的过程中在&quot;递&quot;的过程中解决问题function function_name(Max_argument){ if(end_condition){ end; }else{ solve; function_name(Min_argument);//问题规模逐渐减小 }}注:位于递归函...原创 2018-08-13 17:56:34 · 7091 阅读 · 0 评论 -
B树学习总结
B树多路搜索树 当数据规模足够大的时候, 大部分数据存储到外存中, 常规的平衡二叉搜索树将无法满足需求理由如下: 常规二叉平衡搜索树每当进行search(),insert(),remove()操作的时候就会进行节点的切换,从而导致大量的IO操作,就此提出了多路搜索,尝试将原本的多个节点合在一起,用于减少IO操作; 适用于在磁盘与设备上直接进行动态查找; 如下图二叉搜索及多路搜索拓扑结构:...原创 2018-09-08 11:08:56 · 435 阅读 · 0 评论 -
伸展树学习总结
伸展树与AVL树类似, 伸展树也是二叉搜索树的一种形式, 伸展树无需保证时刻保持全树的平衡,也不需要像AVL树一样要求记录平衡因子的附加信息 伸展树的提出源于信息访问的局部性(刚被访问过的信息有可能再次被访问,要被访问的元素可能位于刚访问过的元素的附近), 就伸展树而言,可采用刚被访问的元素移至数据列表的前端,从而降低后续的操作时间简易伸展树的最坏情况 每次使用search,将访问后的...原创 2018-09-05 05:18:16 · 325 阅读 · 0 评论 -
AVL树学习总结
AVL树平衡二叉树的缺点 由于平衡二叉搜索树的search(), insert(),remove()接口的运行时间与二叉树的高度成正比,所以若不能有效控制树高, 从平均复杂度来看,二叉平衡搜索树并不能让人满意理想平衡 二叉树的性能取决于树的高度,只有当左右子树的高度接近时才能达到理想平衡, 高度为o(logn); 就比如完全二叉树与满二叉树AVL树 由于从平常状态转变为理想状态下...原创 2018-09-05 02:13:08 · 879 阅读 · 0 评论 -
复习Java_List_Set_HashSet原理_Collections使用_Comparator使用
day03 【List、Set、数据结构、Collections】主要内容数据结构List集合Set集合Collections问题背景 能够说出List集合特点 能够说出常见的数据结构 能够说出数组结构特点 能够说出栈结构特点 能够说出队列结构特点 能够说出单向链表结构特点 能够说出Set集合的特点 能够说出哈希表的特点 使用HashSet集合存储自定义元素 ...原创 2019-10-06 16:11:14 · 193 阅读 · 0 评论