用C++实现的完全二叉树,实现前序遍历,中序遍历,后序遍历。

来源:互联网 发布:java 适配器设计模式 编辑:程序博客网 时间:2024/05/29 19:31

结构体定义树节点

typedef struct BiTNode{    string data;    struct BiTNode *lchild, *rchild;}BiTNode, *BiTree;

创建一颗树

void CreateBiTree(BiTree *T){    string ch;    cin >> ch;    if(ch == "#")        *T = NULL;    else    {        *T = new BiTNode;        if(!*T)            cout << "error" << endl;        (*T)->data = ch;        CreateBiTree(&(*T)->lchild);        CreateBiTree(&(*T)->rchild);    }}

前序遍历:

void PreOrderTraverse(BiTree T){    if(T == NULL)        return;    cout << T->data;    PreOrderTraverse(T->lchild);    PreOrderTraverse(T->rchild);}

中序遍历:

void InOrderTraverse(BiTree T){    if(T == NULL)        return;    InOrderTraverse(T->lchild);    cout << T->data;    InOrderTraverse(T->rchild);}

后序遍历:

void PostOrderTraverse(BiTree T){    if(T == NULL)        return;    PostOrderTraverse(T->lchild);    PostOrderTraverse(T->rchild);    cout << T->data;}

主程序

#include <iostream>using namespace std;int main(){    BiTree t;    CreateBiTree(&t);    PreOrderTraverse(t);    InOrderTraverse(t);}
0 0