创建如下图所示的二叉树:
#include
#include
#include
#define MAXSIZE 100
typedef char ElemType;
typedef struct Node
{
ElemType data;
struct Node *lchild;
struct Node *rchild; ...
分类:
其他好文 时间:
2015-07-27 23:07:28
阅读次数:
250
上一篇我们了解了图的基本概念、术语以及存储结构,还对邻接表结构进行了模拟实现。本篇我们来了解一下图的遍历,和树的遍历类似,从图的某一顶点出发访问图中其余顶点,并且使每一个顶点仅被访问一次,这一过程就叫做图的遍历(Traversing Graph)。如果只访问图的顶点而不关注边的信息,那么图的遍历十分...
分类:
其他好文 时间:
2015-07-27 01:45:54
阅读次数:
316
二叉树的遍历方法可分为深度优先和广度优先两种,其中深度优先遍历适合使用栈来辅助实现,广度优先则使用队列,因为栈的先进后出和队列的先进先出特点正好符合遍历顺序的要求。深度优先遍历一般又分为前序遍历,中序遍历,后序遍历,对于一颗树来说,前序、中序、后序针对的都是它的根节点,其中前序遍历访问顺序是:根节点-->左节点-->右节点,中序遍历访问顺序是:左节点-->根节点-->右节点,后续遍历访问顺序是:左...
分类:
其他好文 时间:
2015-07-26 15:48:20
阅读次数:
122
二叉树的先序遍历//先序遍历二叉树的递归实现
void PreOrderTraverse(BiTree T)
{
if(T)
{
printf("%2c",T->data);//访问根结点
PreOrderTraverse(T->lchild);//先序遍历左子树
PreOrderTraverse(T->rchild);//先序遍历右子树
}
}
//二叉树的先序遍历...
分类:
其他好文 时间:
2015-07-25 21:34:15
阅读次数:
138
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序...
分类:
其他好文 时间:
2015-07-25 21:28:11
阅读次数:
133
对于二叉树的遍历,先序的方式是比较简单的,但是中序和后序的方式还是有点麻烦的,这里先给出一个用C++stack的遍历方式:1.如果当前结点不为空 把当前结点压入栈 p=p->left转向其左孩子2.如果当前结点为空(证明这半棵子树已经遍历完成,需要从栈顶找到树根) 取栈顶元素为当前结点,栈做一次弹栈...
分类:
其他好文 时间:
2015-07-25 15:07:45
阅读次数:
97
Binary Tree TraversalsTime Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4330Accepted Submission(s): ...
分类:
其他好文 时间:
2015-07-23 06:35:13
阅读次数:
128
http://poj.org/problem?id=2255#include#include using namespace std;const int maxn = 27;char pre[maxn],in[maxn];char past[maxn];void tre(int ps,int pe,...
分类:
其他好文 时间:
2015-07-23 00:15:16
阅读次数:
157
03-树3. Tree Traversals Again (25)
时间限制
200 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
An inorder binary tree traversal can...
分类:
其他好文 时间:
2015-07-22 10:46:23
阅读次数:
303
树的遍历的实现就是典型的递归思想。
/*
* description:树的遍历示例,递归
* 访问顺序:
* 前序: 当前节点 - 左子树 - 右子树
* 中序: 左子树 - 当前节点 - 右子树
* 后序: 左子树 - 右子树 - 当前节点
*
* write...
分类:
编程语言 时间:
2015-07-20 23:47:22
阅读次数:
240