![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
--Xc
这个作者很懒,什么都没留下…
展开
-
数据结构----二叉树的建立和遍历
对于如何创建二叉树,假设我们要在内存中生成图6-9-1左一样的二叉树,为了确认每个结点是否都有左右孩子 ,我们对每个结点都进行扩展,如下右图,也就是把每个结点的空指针都引出一个虚结点,可以随意赋一个值。二叉树遍历的方法有:前序遍历void setplay(BiTree *T){ if (T->data==NULL) return; cout << ...原创 2018-08-11 21:21:35 · 322 阅读 · 0 评论 -
数据结构---二叉树线索化&&双向链表
我们在创建二叉树时,每个结点都记录的左右孩子的地址,但却不知道前驱是谁,后继是谁。同时创建完会有很多空指针,为了方便记录下每个结点的前一个结点(前驱)和后一个结点(后继)是什么,便可以充分利用这些空指针域。例如一个结点没有左孩子,即它的左孩子指针指向空,这时我们可以让它的左指针指向它的前驱,若这个结点也没有右孩子,则这个结点的右指针指向它的后继。图示:(空心箭头实线指向前期,实心箭头虚线指...原创 2018-08-16 21:04:50 · 683 阅读 · 0 评论 -
数据结构:二叉树的深度与叶子节点数
输入二叉树的先序序列,计算并输出该二叉树的深度与叶子节点个数。请将代码填写完整。例如,下面二叉树对应的先序序列为“AB#D##C##"。 A / \ B C \ D 输入 叉树对应的先序序列为。 输出二叉树的深度与叶子节点个数。样例输入AB...原创 2018-08-22 15:18:59 · 8254 阅读 · 1 评论 -
数据结构---排序、第K大数,第K小数(堆)
堆是一种特殊的完全二叉树,所有父点都比子结点要小称最小堆,反之,所有父点都比子结点大的成为最大堆。用堆来排序、删除、增加效率都比较高。另外用堆来求第K大数和第K小数都比较方便。只需要建立一个大小为K的堆,堆顶就是要求的第K大或第K小。例如:有5个数,要求第3小的数。首先任取三个数,例如前三个建立最大堆,然后从第4个数开始与堆顶比较,若比堆顶大,那么这个数就不要,若比堆顶小就和堆顶交换,重新...原创 2018-08-24 10:39:21 · 1913 阅读 · 0 评论 -
对红黑树的初步了解
平衡的二叉树的查找速度最快的情况是O(logn),但是它在不平衡的时候最坏的情况是O(n)2-3树能够保持树的平衡性,但是因为存在3-结点,它并不是标准的二叉树。红黑树就是能把二叉树和2-3树算法的优点都结合起来构建一个完美平衡的二叉树。它不管是插入、查找还是删除最坏的情况都是O(logn).红黑树,一种二叉查找树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。...原创 2018-09-09 14:57:26 · 221 阅读 · 0 评论 -
998. Maximum Binary Tree II
We are given therootnode of amaximum tree:a tree where every node has a value greater than any other value in its subtree.Just as in theprevious problem, the given treewas constructed from an ...原创 2019-05-14 17:38:31 · 283 阅读 · 0 评论