二叉树的三种遍历方式

Posted huqian477

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的三种遍历方式相关的知识,希望对你有一定的参考价值。

#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<<""; //按后序递归显示二叉树结点的值

       

以上是关于二叉树的三种遍历方式的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的三种遍历对比及用图片展现

Python二叉树的三种深度优先遍历

二叉树的三种遍历方式

二叉树的三种非递归遍历方式(附Cjava源码)

Python二叉树的三种深度优先遍历

二叉树的三种遍历方式