中序 遍历的几种情况
分析1:什么时候访问根、什么时候访问左子树、什么访问右子树
当左子树为空或者左子树已经访问完毕以后,再访问根
访问完毕根以后,再访问右子树。
分析2:非递归遍历树,访问结点时,为什么是栈,而不是其他模型(比如说是队列)。
先走到的后访问、后走到的先访问,显然是栈结构
分析3:结点所有路径情况
步骤1:
如果结点有左子...
分类:
其他好文 时间:
2015-07-19 10:13:11
阅读次数:
103
递归遍历比较简单,本文主要总结非递归遍历。前序遍历前序遍历按照“根结点-左孩子-右孩子”的顺序进行访问。
对于任一结点P:
访问结点P,并将结点P入栈;
判断结点P的左孩子是否为空,若为空,则取栈顶结点并进行出栈操作,并将栈顶结点的右孩子置为当前的结点P,循环至1);若不为空,则将P的左孩子置为当前的结点P;
直到P为NULL并且栈为空,则遍历结束。
void preorder(TreeNode...
分类:
其他好文 时间:
2015-07-17 18:48:34
阅读次数:
110
先序遍历
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
C语言实现二叉树的遍历二叉树结点的定义/*
先序,中序,后序的遍历时间复杂度为O(n),每个结点只访问一次。 层序的时间复杂度最差为O(n^2),当二叉树基本平衡时,时间复杂度为O(n) n为结点个数
*/typedef int tree_node_element;
/**
* @author 韦轩
* @time 2015/07/11
* @brief 二叉树的结点数据结...
分类:
其他好文 时间:
2015-07-13 22:35:19
阅读次数:
205
基本思想就是:二叉树的中序非递归遍历 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *...
分类:
其他好文 时间:
2015-07-07 00:56:35
阅读次数:
114
#include"stdio.h"
#include"malloc.h"
#include"stdlib.h"
typedef struct lNode
{
char data;
struct lNode *lchild;
struct lNode *rchild;
}LNODE,*Tree;
typedef struct Node
{
Tree data;
struct Node * Next;
}NODE, * PNODE;
typedef struct Stack
{
...
分类:
其他好文 时间:
2015-07-02 19:30:39
阅读次数:
135
Given a binary tree, return the postorder traversal of its nodes’ values.For example:
Given binary tree {1,#,2,3}, 1
2
/
3return [3,2,1].Note: Recursive solution is trivial, could...
分类:
其他好文 时间:
2015-06-13 11:23:14
阅读次数:
113
二叉树定义:
1.有且仅有一个特定的称之为根root的结点
2.当n>1时,除根结点之外的其余结点分为两个互不相交的子集。他们称为二叉树的左子树和右子树。
二叉树的一种建立方法:
若对有n个结点的完全二叉树进行顺序编号(1=1)的结点。
当i=1时,该结点为根,它无双亲结点;
当i>1时,该节点的双亲编号为[i/2];
若2i
当2i+1
利用上个性质,对任意二叉树,先按满二叉树...
分类:
其他好文 时间:
2015-06-09 10:04:17
阅读次数:
223
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于...
分类:
其他好文 时间:
2015-05-26 14:15:31
阅读次数:
191
对于此题的解释,在注释中解释的十分详细,就不在此赘述。另外。。之前的一篇文章中提到了关于二叉树的详细说明,以及非递归、递归遍历二叉树的多种方法。
链接在此~二叉树之非递归遍历 漫谈二叉树之递归遍历
废话少说,代码搞起/**
* Created by zhangshuyou on 2015/5/23.
*/
/**
* 题目描述
* 输入一个整数数组,判断该数组是不是某二...
分类:
其他好文 时间:
2015-05-23 14:16:38
阅读次数:
121