二叉树建立与遍历

北慕城南 提交于 2019-12-02 11:04:19

1.以二叉链表表示二叉树,建立一棵二叉树;
2.输出二叉树的中序遍历结果;
3.输出二叉树的前序遍历结果;
4.输出二叉树的后序遍历结果;
5.输出二叉树的层序遍历结果。

#include <iostream>
using namespace std;
typedef struct BiTNode
{
    char data;
    struct BiTNode *lchild, *rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T) 
{ 
    char x;    
    cin>>x;    
    if ('#' == x)        
    	T = NULL;    
    else
    {
    	T = new BiTNode;
  	T->data = x;
  	CreateBiTree(T->lchild);
  	CreateBiTree(T->rchild);
    }
}
void PreOrderTraverse(BiTree T)
{
    if (!T)
  	return;
    else
    {
  	cout << T->data << " ";
  	PreOrderTraverse(T->lchild);
  	PreOrderTraverse(T->rchild);
    }
}
void InOrderTraverse(BiTree T)
{
    if (!T)
  	return;
    else
    {
    	PreOrderTraverse(T->lchild);
  	cout << T->data << " ";
  	PreOrderTraverse(T->rchild);
    }
}
void PostOrderTraverse(BiTree T)
{
    if (!T)
  	return;
    else
    {
        PreOrderTraverse(T->lchild);
  	PreOrderTraverse(T->rchild);
  	cout << T->data << " ";
    }
}
int main()
{
    BiTree T;
    cout << "请输入二叉树元素:\n";
    CreateBiTree(T);
    cout << "先序遍历:\n";
    PreOrderTraverse(T);
    cout << endl;
    cout << "中序遍历:\n";
    InOrderTraverse(T);
    cout << endl;
    cout << "后序遍历:\n";
    PostOrderTraverse(T);
    return 0;
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!