一 树的基本术语 (1) 结点、叶子、父结点、子结点、祖父结点、兄弟结点、子孙结点 (2) 结点的度:结点拥有的子树的数量 (3) 树的度:树中结点最大的树 (4) 树的高度:树中结点的最大层次 二 二叉树的性质 (1) 二叉树第i层上的结点数目最多为 2{i-1} (i≥1) (2) 深度为k的二 ...
分类:
其他好文 时间:
2017-12-16 14:49:01
阅读次数:
101
独白: 利用算法进行查找指定元素,最近学习二分查找和二叉树遍历。二分查找前提是在有序中进行查找,二叉树引入了树的概念。树的概念其中有许多小知识点,也是一种新的数据结构。还是之前的感悟,需了解其本质才会写出更好的算法。 二分查找 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是 ...
分类:
编程语言 时间:
2017-12-14 18:05:55
阅读次数:
166
最近在复习二叉树的算法,所以对二叉树的遍历分别做了用两中不同方式来实现二叉树遍历 首先是先序遍历 接着是中序遍历 最后是后序遍历 ...
分类:
其他好文 时间:
2017-12-10 17:06:17
阅读次数:
154
问题 A: 数据结构作业04 -- 二叉树的输入 题目描述 用二叉树的带虚结点表示的前序遍历序可以唯一的确定一棵二叉树。 用二叉树的带虚结点表示的前序遍历序可以唯一的确定一棵二叉树。 输入 每行是一棵二叉树的带虚结点(#)表示的前序遍历序串,长度不超过2000。每个结点为一个小写字母或一个数字。 每 ...
分类:
其他好文 时间:
2017-11-30 00:55:22
阅读次数:
301
在二叉树中最重要的操作莫过于遍历,即按照某一顺序访问树中的所有节点。二叉树的前序遍历、中序遍历、后序遍历都有递归和循环两种不同的实现方法。每种遍历的递归实现都比循环实现要简洁很多。下面分享一个关于二叉树遍历到笔试题: 给定一棵完全二叉树,即树中的每一个节点有2个子节点或者没有子节点,每一个节点的值小 ...
分类:
编程语言 时间:
2017-11-05 00:26:42
阅读次数:
425
前序、中序、后序 遍历 其实蛮简单的注意下位置就行了 ...
分类:
其他好文 时间:
2017-10-28 01:07:07
阅读次数:
209
首先来说一下二叉树的定义:二叉树是一个连通的无环图,并且每一个顶点的度不大于3;有根二叉树还要满足根结点的度不大于2。有了根结点之后,每个顶点定义了唯一的父结点,和最多2个子结点。二叉树不是树的特殊情形,尽管与树有许多相似之处,但树和二叉树 有两个主要的区别:1、树中节点的最大度数没有限制,而二叉树 ...
分类:
其他好文 时间:
2017-10-22 21:40:33
阅读次数:
132
二叉树遍历最简单的就是递归了。因为递归实质上是栈存了一些中间值,所以我们可以使用stack实现迭代版的遍历。 中序遍历 步骤: 首先将root节点作为当前节点。 1.如果当前节点不为空,压入当前节点。将左节点作为当前节点。 2.否则弹出栈顶节点作为当前节点,输出当前节点。 3.如果右节点不为空,右节 ...
分类:
其他好文 时间:
2017-10-11 21:48:46
阅读次数:
183
#include using namespace std; template class BSTree; template class BinaryNode { friend class BSTree; public: BinaryNode():left(NULL),right(NULL){} Bi... ...
分类:
其他好文 时间:
2017-10-08 14:45:16
阅读次数:
138
void PreOrder(TreeNode *root) { TreeNode *p = root; stack s; while (!s.empty() || p) { while (p) { cout val left; } if (!s.empty()) { p = s.top(); s.p... ...
分类:
其他好文 时间:
2017-09-18 17:26:13
阅读次数:
146