采用二叉链表存储方式的二叉树,非递归中序遍历C语言实现...
分类:
编程语言 时间:
2014-10-08 13:40:45
阅读次数:
164
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三...
分类:
其他好文 时间:
2014-09-27 20:33:10
阅读次数:
174
先序遍历:
void preOrder(Node *p) //非递归
{
if(!p) return;
stack s;
Node *t;
s.push(p);
while(!s.empty())
{
t=s.top();
printf("%d\n",t->data);
s.pop();
if(t->ri...
分类:
其他好文 时间:
2014-09-15 19:36:09
阅读次数:
152
1 // 树结点定义2 typedef struct TNode3 {4 int value;5 TNode *left;6 TNode *right;7 }*PTNode;1. 前序遍历的非递归实现(借鉴递归思想实现)思想:访问到一结点时,先将其入栈,假设入栈节点为P。访问...
分类:
其他好文 时间:
2014-08-25 19:06:54
阅读次数:
212
#include #include using namespace std;typedef struct Node{ Node* lchild; Node* rchild; int data;}BNode,BTree;void visit(Node*);void inorder(B...
分类:
其他好文 时间:
2014-07-19 19:26:40
阅读次数:
226
先写下这个问题的模式
def preorderTraversal(self, root):
if root == None: return []
re = []
insert root to stack s
while s not empty:
cur_root = top of stack s
s.pop()
how to handle cur_root
how to ...
分类:
其他好文 时间:
2014-07-15 10:17:43
阅读次数:
274
二叉树的递归遍历和非递归遍历(附详细例子)
二叉树的遍历主要有递归实现和非递归实现,递归实现比较好理解,非递归实现主要是利用了栈的思想,后进先出,本文实现二叉树的非递归遍历主要是用了LinkedList可以当做栈使用的功能。具体例子如下:
package com.sheepmu;
import java.util.LinkedList;
public class Bin...
分类:
其他好文 时间:
2014-06-07 13:06:05
阅读次数:
269