二叉树的先序遍历//先序遍历二叉树的递归实现
void PreOrderTraverse(BiTree T)
{
if(T)
{
printf("%2c",T->data);//访问根结点
PreOrderTraverse(T->lchild);//先序遍历左子树
PreOrderTraverse(T->rchild);//先序遍历右子树
}
}
//二叉树的先序遍历...
分类:
其他好文 时间:
2015-07-25 21:34:15
阅读次数:
138
对于二叉树的三种遍历方式,它们的难易程度是不一样的,最简单的是先序遍历,其次是中序遍历,最难的是后序遍历方式。但是最难的后序遍历方式,却可以通过最简单的先序遍历方式的变形实现,然后把遍历的结果逆序一下就搞定了。哈哈,物极必反啊!先看一个最简单的后序的遍历方法的实现,利用先序遍历方式的变形,然后逆序v...
分类:
编程语言 时间:
2015-07-25 18:23:55
阅读次数:
219
#include "stdio.h"
#include "string.h"
#include "malloc.h"
#define NULL 0
#define MAXSIZE 30
typedef struct BiTNode //定义二叉树数据结构
{
char data;
struct BiTNode *lchild,*rchild;
} BiT...
分类:
其他好文 时间:
2015-07-25 00:14:27
阅读次数:
125
首先。先序遍历是先访问根节点。然后左节点 然后右节点。从根节点开始 直到它的子节点没有左节点才开始回溯访问上一个节点的右节点。同理。中序遍历先访问左节点然后是父节点然后是右节点。从根节点开始 直到它的孩子节点没有左节点才开始回溯访问该节点然后是它的父节点然后是它的兄弟右节点。也就是说 每次访问一个节...
分类:
其他好文 时间:
2015-07-24 10:29:48
阅读次数:
98
#创建树,让树的每一个节点都变成度数为2的树
通过先序遍历124###3##可以唯一确定一棵树。
// nonrecursion.cpp
// 对树的操作
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
using namespace std;
// 二叉树表示法
typedef struct BiTNode...
分类:
其他好文 时间:
2015-07-19 20:14:03
阅读次数:
169
先序遍历
void PreOrder_Nonrecursive1(BiTree T) //先序遍历的非递归
{
if(!T)
return ;
stack s;
BiTree curr = T;
while(curr != NULL || !s.empty())
{
while(...
分类:
其他好文 时间:
2015-07-17 08:25:49
阅读次数:
131
一、树的遍历 1、先根(次序)遍历树 先访问树的根节点,然后依次先根遍历根的每棵子树 2、后根(次序)遍历 先依次后根遍历每棵子树,然后访问根结点。上面的先根遍历为:A B C D E上面的后根遍历为:B D C E A二、森林的遍历 1、先序遍历森林 若森林非空,则可...
分类:
其他好文 时间:
2015-07-15 20:46:17
阅读次数:
113
一、基础知识 1、 遍历二叉树概念:如何按某条搜索路径寻访树中每个结点,使得每个结点均被访问一次,而且仅被访问一次。 2、遍历二叉树限定先左后右,则有三种情况先(根)序遍历,中(根)序遍历和后(根)序遍历 先序遍历二叉树定义操作 若二叉树为空,则空操作;否则: a...
分类:
其他好文 时间:
2015-07-15 18:22:07
阅读次数:
129
该题的思路很简单,就是对BST进行先序遍历,找到第k个数的时候返回。这里借助栈用迭代实现,递归的代码更简单,没有尝试。
class Solution {
public:
int kthSmallest(TreeNode* root, int k) {
stack cache;
TreeNode *point = root;
TreeNode...
分类:
其他好文 时间:
2015-07-12 17:27:38
阅读次数:
85
http://acm.hdu.edu.cn/showproblem.php?pid=3999The order of a TreeTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total ...
分类:
其他好文 时间:
2015-07-10 02:11:43
阅读次数:
195