递归遍历比较简单,本文主要总结非递归遍历。前序遍历前序遍历按照“根结点-左孩子-右孩子”的顺序进行访问。
对于任一结点P:
访问结点P,并将结点P入栈;
判断结点P的左孩子是否为空,若为空,则取栈顶结点并进行出栈操作,并将栈顶结点的右孩子置为当前的结点P,循环至1);若不为空,则将P的左孩子置为当前的结点P;
直到P为NULL并且栈为空,则遍历结束。
void preorder(TreeNode...
分类:
其他好文 时间:
2015-07-17 18:48:34
阅读次数:
110
递归完成树的遍历很好理解,倘若是非递归,不要告诉我算法导论上有,我要maker的思考过程
既然递归能够实现,那就模拟递归。递归的本质就是压栈。
首先简单树,观察递归的压栈过程
A、B即使节点的数据也代表节点的地址。
对这棵树使用递归完成前序创建#include
using namespace std;
struct treenode;
typedef struct...
分类:
编程语言 时间:
2015-07-17 16:24:55
阅读次数:
172
先序遍历
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
package c4;public class FibTest { public static void main(String []args ){ long begin = System.currentTimeMillis() ; System.out.println(fib(10)) ; ...
分类:
编程语言 时间:
2015-07-16 16:20:34
阅读次数:
123
上一篇文章即是对这一主题的变化。并给出了一个非递归溶液。我给出原题的一种递归解法。将会看到,现比較上篇博文。今天给出的递归解法的代码实现是相当简洁的。问题描写叙述:假设我们把二叉树看成一个图。父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序。求一棵二叉树中相距最远...
分类:
其他好文 时间:
2015-07-15 10:55:51
阅读次数:
98
测试环境:vs2010 windows7
逆序分别采用递归调用和链表头插法实现逆序。
具体代码如下:
#include
#include
using namespace std;
class LinkList
{
private:
struct Node
{
struct Node *next;
int value;
};
Node *phead;
void rever...
分类:
编程语言 时间:
2015-07-14 22:48:36
阅读次数:
193
acm训练中碰到的 题目 HDU 2035 ,1097求 A^B 其实就是把B不断二分降次 得到 (A^2)^(B/2)若B%2==1 则要特殊处理 即 A*(A^2)^(B/2)下面给出 递归 和非递归代码 1 int power(int a,int b) 2 { 3 int res=...
分类:
其他好文 时间:
2015-07-14 17:52:44
阅读次数:
100
在上一篇中,我们了解了树的基本概念以及二叉树的基本特点和代码实现,还用递归的方式对二叉树的三种遍历算法进行了代码实现。但是,由于递归需要系统堆栈,所以空间消耗要比非递归代码要大很多。而且,如果递归深度太大,可能系统撑不住。因此,我们使用非递归(这里主要是循环,循环方法比递归方法快, 因为循环避免了一...
分类:
其他好文 时间:
2015-07-14 06:04:48
阅读次数:
207
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、二进制定义typedef struct BTreeNodeElement_t_ { void *data;} BTreeNodeElement_t;typedef struct BTreeNode_t_ { BTreeNodeElement_t *m_pElemt; struc...
分类:
其他好文 时间:
2015-07-13 13:34:26
阅读次数:
139