二叉树的四种遍历方法:前序、中序、后序、层次
生活随笔
收集整理的這篇文章主要介紹了
二叉树的四种遍历方法:前序、中序、后序、层次
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前/中/后序遍歷也可分別稱為前/中/后根遍歷
#include <iostream> using namespace std;//二叉樹的鏈?zhǔn)酱鎯?chǔ)的結(jié)點(diǎn) typedef struct BiTNode{int data;struct BiTNode *lchild,*rchild; }BiTNode,*BiTree;//鏈?zhǔn)疥?duì)列結(jié)點(diǎn) typedef struct LinkNode{BiTNode *data;struct LinkNode *next; }LinkNode;typedef struct{LinkNode *front,*rear;//定義隊(duì)頭隊(duì)尾 }LinkQueue;void visit(BiTree T){cout>>T.data>>endl; }//先序遍歷 void PreOrder(BiTree T){if(T!=NULL){visit(T);PreOrder(T->lchild);PreOrder(T->rchild);} }//中序遍歷 void InOrder(BiTree T){if(T!=NULL){InOrder(T->lchild);visit(T);InOrder(T->rchild);} }//后序遍歷 void PostOrder(BiTree T){if(T!=NULL){PostOrder(T->lchild);PostOrder(T->rchild);visit(T);} }//層次遍歷 void LevelOrder(BiTree T){LinkQueue Q;InitQueue(Q); //初始化隊(duì)列BiTree p;EnQueue(Q,T);while(!IsEmpty(Q)){DeQueue(Q,p); //隊(duì)頭結(jié)點(diǎn)出隊(duì)visit(p);if(p->lchild!=NULL)EnQueue(Q,p->lchild);if(p->rchild!=NULL)EnQueue(Q,p->rchild);} }?
總結(jié)
以上是生活随笔為你收集整理的二叉树的四种遍历方法:前序、中序、后序、层次的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 树的常考性质
- 下一篇: 二叉树的先序线索化、中序线索化、后序线索