垂直打印给定的一棵二叉树。下面的例子演示了垂直遍历的顺序。
1
/ 2 3
/ \ / 4 5 6 7
\ 8 9
对这棵树的垂直遍历结果为:
4
2
1 5 6
3 8
7
9
在二叉树系列中,已经讨论过了一种O(n...
分类:
其他好文 时间:
2015-06-06 00:31:13
阅读次数:
135
这道题目难度一般,重要的是想到以队列作为辅助来解决。 分析:因为按层打印的顺序决定了先打印的应该为根结点。为了接下来能够打印值为 8 的结点的两个子结点,应该在遍历到该结点时把值为 6 和 10 的两个结点保存到一个容器里,此时容器中含有 6 和 10 两个结点。按照从左到右的要求,先取出值为 6 的结点。打印出值 6 之后分别把 5 和 7 两个左右子结点放入容器 ,此时容器中的结点有三个...
分类:
其他好文 时间:
2015-05-23 14:20:56
阅读次数:
165
#include
#include
#include
using namespace std;
typedef struct biNode
{
char data;
biNode *lChild;
biNode *rChild;
};
char pre[100];
char in[100];
void createTree(biNode* &biTree, int preSta...
分类:
其他好文 时间:
2015-05-17 12:17:18
阅读次数:
100
#include
#include
using namespace std;
struct treeNode
{
int value;
treeNode* left;
treeNode* right;
treeNode* parent;
};//节点结构
void insert(treeNode **root,int value)
{
treeNode* ...
分类:
其他好文 时间:
2015-05-12 09:36:45
阅读次数:
121
二叉树是树(Tree)这一数据结构中非常重要的子类,其中每一个节点最多存在两个子节点,在代码中表示就是,除了本身的 Data 值,还会带有 Left 和 Right 子节点。如下图所示,用形如图中的结构构成了整棵树。任何一种数据结构,都会存在遍历的顺序问题,比如链表,堆栈等等;二叉树这种数据结构也有...
分类:
编程语言 时间:
2015-05-10 23:52:12
阅读次数:
156
二叉树是一种重要的数据结构.
二叉树是n(n>=0)个结点的有限集合,该集合或为空集,或由一个根结点和两棵互不相交的,分别称为根结点的左子树和右子树的二叉树组成(递归定义)
满二叉树:对于这样的一棵二叉树,如果所有分支结点都存在左右子树,且所有叶子节点都在同一层上,称这样的二叉树为满二叉树。
完全二叉树:如果一棵具有n个结点的二叉树的结构与满二叉树的前n个结点完全相同,称之为完全二叉树。
...
分类:
其他好文 时间:
2015-05-10 20:33:27
阅读次数:
156
#include
#include
using namespace std;
struct treeNode
{
int value;
treeNode* left;
treeNode* right;
};
int getHeight(treeNode * root)
{
if(root==NULL)
return 0;
else
ret...
分类:
其他好文 时间:
2015-05-10 15:42:13
阅读次数:
124
原题链接:http://ac.jobdu.com/problem.php?pid=1184简单的二叉树重建,遍历.如下: 1 #include 2 #include 3 #include 4 #include 5 struct node{ 6 char key; 7 node *ch...
分类:
其他好文 时间:
2015-05-04 21:54:45
阅读次数:
138