先序,中序,后序遍历二叉树

来源:互联网 发布:kvm虚拟机windows 编辑:程序博客网 时间:2024/04/29 08:01
#include <iostream>using namespace std;int count = 0;class BinTree{public:BinTree(int v){value = v;left = NULL;right = NULL;}int value;BinTree* left;BinTree* right;};void createTree(BinTree* &tree,int depth,int cur) {if(cur < depth) {tree = new BinTree(count);count++;createTree(tree->left,depth,cur+1);createTree(tree->right,depth,cur+1);} else {return;}}void print(BinTree* tree) {cout<<tree->value<<endl;}void inOrder(BinTree* tree,void visit(BinTree*)){if(!tree)return;inOrder(tree->left,visit);visit(tree);inOrder(tree->right,visit);}void preOrder(BinTree* tree,void visit(BinTree*)){if(!tree)return;visit(tree);preOrder(tree->left,visit);preOrder(tree->right,visit);}void postOrder(BinTree* tree,void visit(BinTree*)){if(!tree)return;postOrder(tree->left,visit);postOrder(tree->right,visit);visit(tree);}int main(){BinTree* tree;createTree(tree,2,0);cout<<"InOrder:"<<endl;inOrder(tree,&print);cout<<"PreOrder:"<<endl;preOrder(tree,&print);cout<<"PostOrder:"<<endl;postOrder(tree,&print);return 0;}

原创粉丝点击