二叉树的三种遍历方式

本文详细介绍了如何使用先序遍历的方式创建二叉树,并提供了先序、中序和后序遍历的实现代码。通过递归方法,读者可以深入理解二叉树的结构及其遍历算法。

#include<iostream>

using namespace std;

#define QUEUE_INIT_SIZE 100 //循环队列初始元素个数

#define QUEUEINCREMENT 10 //循环队列空间扩展增量

typedef char TElemType;

typedef struct BiTNode{

       TElemType data;

       struct BiTNode *lchild, *rchild;    /*左右孩子指针*/

}BiTNode, *BiTree;

 

 

//创建二叉树(先序遍历方式)

void CreateBiTree (BiTree &T) {

char ch;

       /

                     cin>>ch;

       if(ch=='#')

       {

              T=NULL;

       }

       else

       {

              T=new BiTNode;   //生成根节点

              T->data=ch;

              CreateBiTree(T->lchild);

              CreateBiTree(T->rchild);

       }//按先序输入二叉树结点的值(#表示空),递归创建二叉链表

       

}

//先序遍历

void PreOrderTraverse (BiTree T) {

       

                     if(T)

       {

              cout<<T->data;

              PreOrderTraverse (T->lchild);

              PreOrderTraverse (T->rchild);

       }

       else cout<<"";//按先序递归显示二叉树结点的值

       

}

//中序遍历

void InOrderTraverse (BiTree T) {

       

              if(T)

       {

              InOrderTraverse(T->lchild);

              cout<<T->data;

              InOrderTraverse(T->rchild);

       }

       else cout<<""; //按中序递归显示二叉树结点的值

       

}

//后序遍历

void PostOrderTraverse (BiTree T) {

       

       if(T)

       {

              PostOrderTraverse (T->lchild);

              PostOrderTraverse (T->rchild);

              cout<<T->data;

       }

       else cout<<""; //按后序递归显示二叉树结点的值

       

}

转载于:https://www.cnblogs.com/huqian477/p/huqian4.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值