C++数据结构--二叉树的建立,前序遍历,中序遍历和后序遍历

本文所用到的二叉树:


#include<iostream>
#include<stdio.h>
using namespace std;
typedef struct BT
{
   char data; //二叉树数据域
   BT *Left;   //二叉树左节点
   BT *right; //二叉树右节点
}BTree;


void create(BTree *&head)
{
    //建立二叉树

   char c;
   cin>>c;
   if(c!='#')
   {
  head=new BTree;
  head->data=c;
  create(head->Left);  //创建左子树
  create(head->right); //创建右子树
   }
   else
   {
  head=NULL; 
  return;
 
   }
}




void preOrderTraverse(BTree *head)
{


if(!head)
return;
cout<<head->data<<"\t"; //输出根节点信息,注:这里的根节点是相对的,因为每一颗子树也有根节点
preOrderTraverse( head->Left);//遍历左子树
        preOrderTraverse( head->right);//遍历右子树



}








void inOrderTraverse(BTree *head)
{


if(!head)
return;

inOrderTraverse( head->Left);
cout<<head->data<<"\t";
       inOrderTraverse( head->right);



}


void lastOrderTraverse(BTree *head)
{


if(!head)
return;

lastOrderTraverse( head->Left);
lastOrderTraverse( head->right);
cout<<head->data<<"\t";



}


int main(void)
{
    BTree *head;
cout<<"请输入你想要建立的二叉树:"<<endl;
    create(head);
    cout<<"前序遍历 : ";
    preOrderTraverse(head);
    cout<<endl<<"中序遍历 :";
    inOrderTraverse(head);
    cout<<endl<<"后序遍历 : ";
    lastOrderTraverse(head);
    return 0;
}



运行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值