- 博客(3)
- 收藏
- 关注
原创 堆
经常在学习一些相关的计算机知识时会遇到:xxx是基于堆的。乍一听上去感觉很高端,给人的第一印象就是一堆杂乱的数据摆在一起,然后进行特定的操作。实际上,堆(heap)是一棵特殊的完全二叉树,而且是采用的静态存储方式。它要求每个根节点都比他的左右子树结点值大(大顶堆)或者都小(小顶堆),若是我们每次取出根节点的值,然后删除掉根节点,对整个堆进行调整,再重复上面操作,这样就能得到一个有序的序列。建堆的思...
2018-04-03 17:25:53
164
原创 AVL树的操作
AVL( Adelson-Velsky and Landis)树是一棵自平衡的二叉查找树BST(binary search tree),所谓二叉查找树就是:左子树结点值<根节点值<右子树结点值。在查找结点值时相对普通二叉树的查找可以进行剪枝处理,当待查找值小于当前结点值时,往左子树查找,当待查结点值大于当前结点值时往右子树查找,这样查找时总体能达到o(logn)的复杂度。但当二叉查找树...
2018-04-01 11:02:35
465
原创 树的基本操作
正常套路,数据结构无非就是结构定义、插入、查找、删除操作。树有几种存储方式,一种是孩子兄弟结点表示法,一种是父结点表示法,对于二叉树采用的是孩子表示法。struct node{ int data; node* lchild; node* rchild;};这里只考虑都左右子结点和自己存储的值data,为了满足平衡二叉树的操作,需要知道树的高度height,故其定...
2018-03-30 17:20:56
2830
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人