二叉树非递归 先序,中序

 1#include<iostream>
 2#include<stack>
 3using namespace std;
 4
 5struct BinTreeNode{
 6    int data;
 7    BinTreeNode *left;
 8    BinTreeNode *right;
 9}
;
10void preOrder1(BinTreeNode *root){//先序1
11    stack<BinTreeNode*> s;
12    BinTreeNode *tmp=root;
13    while(tmp!=NULL || !s.empty()){
14        while(tmp!=NULL){
15            cout<<tmp->data<<' ';
16            s.push(tmp);
17            tmp = tmp->left;
18        }

19        if(!s.empty()){
20            tmp = s.top()->right;
21            s.pop();
22        }

23    }

24}

25void preOrder2(BinTreeNode *root){//先序2
26    stack<BinTreeNode*> s;
27    BinTreeNode *tmp=root;
28    while(tmp!=NULL || !s.empty()){
29        while(tmp!=NULL){
30            cout<<tmp->data<<' ';
31            s.push(tmp->right);
32            tmp = tmp->left;
33        }

34        if(!s.empty()){
35            tmp = s.top();
36            s.pop();
37        }

38    }

39}

40void InOrder(BinTreeNode *root){//中序
41    stack<BinTreeNode*> s;
42    BinTreeNode *tmp=root;
43    while(tmp!=NULL || !s.empty()){
44        while(tmp!=NULL){            
45            s.push(tmp);
46            tmp = tmp->left;
47        }

48        if(!s.empty()){
49            cout<<s.top()->data<<' ';
50            tmp = s.top()->right;
51            s.pop();
52        }

53    }

54}

posted on 2011-08-18 15:14 Hsssssss 阅读(83) 评论(0)  编辑 收藏 引用 所属分类: C++代码


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿

文章分类

文章档案

收藏夹

搜索

最新评论