数据结构
阿尔兹
将生活技能点满,活成百科全书
展开
-
B树--B+树原理及操作(插入,删除)
前言:B树代码戳这里:https://blog.csdn.net/alzzw/article/details/97663352 在讲B树之前,先说一下多路查找树: 2-3树:是一种多路查找树:2和3的意思就是2-3树包含两种结点(1)2结点包含一个元素和两个孩子(或者没有孩子)。左子树包含结点的元素值小于该结点的元素值,右子树包含的结点的元素值大于该结点的元素值...原创 2019-07-29 14:18:31 · 7261 阅读 · 2 评论 -
B树代码实现--C++
B树,B+树原理及操作请点击这里B树代码实现:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#define KeyType int#define Record string con...原创 2019-07-29 18:16:19 · 4089 阅读 · 1 评论 -
终于搞懂红黑树!--红黑树的原理及操作
红-黑-树介绍:红黑树( Red black tree)是种自平衡二叉查找树,在计算机科学中用到的一种数据结构。它是在1972年由 Rudolf Bayer发明的当时被称为平衡二叉B树( symmetric binary B-trees)。后来,在1978年被 Leo. guibas和 Robert sedgewick修改为如今的红黑树R-B Tree,全称是Red- Blac...原创 2019-07-30 15:17:04 · 9409 阅读 · 5 评论 -
哈夫曼树-赫夫曼树-霍夫曼树(Huffman Tree)原理及应用与代码
哈夫曼树定义:设二叉树具有n个带权值的叶节点,那么从根节点到各个叶节点的路径长度与相应节点权值的乘积的和,叫做二叉树的带权路径长度。 下图WPL(带权路径长度)的计算: WPL = 2*2+2*3+1*1 = 11 ...原创 2019-07-30 20:20:27 · 9961 阅读 · 1 评论 -
从小白开始学习树,二叉树--(本文C++ )
树二叉树创建二叉树的遍历树的非递归遍历求叶子节点:求树的深度:树的基本概念:由一个或多个(n>=0)结点组成的有限集合T,有且仅有一个结点称为根(root),当n>1 时,其余结点分为m(m>=0)个互不相交的有限集合T1,T2,…,Tm。每个集合本身又是棵树,被称为这个根的子树。树的结构特点:1.非线性结构,有一个直接前驱,但可能有多个直接后继(1:n);2....原创 2019-07-25 20:49:29 · 2232 阅读 · 7 评论 -
数据结构--线索二叉树详细讲解与实例分析
线索二叉树思考:在有n个节点的二叉链表中必定有n+1个空链域(下面会说为什么),遍历运算是最重要也是最常用的运算,之前的无论递归与非递归算法实现遍历效率都不算高。能不能利用这未使用的n+1空指针域,设计出提高遍历效率的存储结构? 观察该树可以发现节点(除了根节点)都有一个直接前...原创 2019-07-26 23:19:03 · 2659 阅读 · 2 评论 -
二叉搜索(排序)树--BST的基本原理与概念及代码实现
二叉排序树 思考: 给定一组数列{7,3,10,12,5,1,9},要求能够高效的完成对数据的查询和添加我们可能有以下解决方案:1.使用数组(1)数组未排序,优点:直接在数组尾添加,速度快。缺点:查找速度慢. (2)数组排序,优点:可以使用二分查找,查找速度快,缺点:为了保证数组有序在添加新数据时,找到插入位置后,后面的数据需整体...原创 2019-07-27 23:30:53 · 1217 阅读 · 0 评论 -
平衡二叉树--AVL 的原理及实现
平衡二叉树 前言: 对于平衡二叉树,其实是二叉搜索树的进阶版;即平衡二叉树一定是二叉搜索树 每个节点的左子树和右子树的高度差的绝对值至多为1 对于普通的二叉搜索树(7,3,10,12,5,1,9),其树为: ...原创 2019-07-28 14:54:06 · 3787 阅读 · 7 评论