生活随笔
收集整理的這篇文章主要介紹了
用递归方法对二叉树进行先序、中序和后序遍历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?二叉樹為:
???????????????????????? 1
????????????? 2????????? ??????? ??3
????????? 4????? 5???????????? 6??? 7
?????
???????程序如下:
[cpp]?view plaincopy
#include<iostream>?? #define?N?7?? using?namespace?std;?? ?? typedef?struct?node?? {?? ????struct?node?*leftChild;?? ????struct?node?*rightChild;?? ????int?data;?? }BiTreeNode,?*BiTree;?? ?? BiTreeNode?*createNode(int?i)?? {?? ????BiTreeNode?*?q?=?new?BiTreeNode;?? ????q->leftChild?=?NULL;?? ????q->rightChild?=?NULL;?? ????q->data?=?i;?? ?? ????return?q;?? }?? ?? BiTree?createBiTree()?? {?? ????BiTreeNode?*p[N]?=?{NULL};?? ????int?i;?? ????for(i?=?0;?i?<?N;?i++)?? ????????p[i]?=?createNode(i?+?1);?? ?? ????for(i?=?0;?i?<?N/2;?i++)?? ????{?? ????????p[i]->leftChild?=?p[i?*?2?+?1];?? ????????p[i]->rightChild?=?p[i?*?2?+?2];?? ????}?? ?? ????return?p[0];?? }?? ?? int?visit(BiTree?T)?? {?? ????return?T->data;?? }?? ?? ?? void?preOrderTraverse(BiTree?T)?? {?? ????if(T)?? ????{?? ????????cout?<<?visit(T)?<<?"?";?? ????????preOrderTraverse(T->leftChild);?? ????????preOrderTraverse(T->rightChild);?? ????}?? }?? ?? ?? void?inOrderTraverse(BiTree?T)?? {?? ????if(T)?? ????{?? ????????inOrderTraverse(T->leftChild);?? ????????cout?<<?visit(T)?<<?"?";?? ????????inOrderTraverse(T->rightChild);?? ????}?? }?? ?? ?? void?postOrderTraverse(BiTree?T)?? {?? ????if(T)?? ????{?? ????????postOrderTraverse(T->leftChild);?? ????????postOrderTraverse(T->rightChild);?? ????????cout?<<?visit(T)?<<?"?";?? ????}?? }?? ?? int?main()?? {?? ????BiTree?T?=?createBiTree();?? ?????? ????cout?<<?"先序遍歷:"?<<?endl;?? ????preOrderTraverse(T);?? ????cout?<<?endl?<<?endl;?? ?????? ????cout?<<?"中序遍歷:"?<<?endl;?? ????inOrderTraverse(T);?? ????cout?<<?endl?<<?endl;?? ?????? ????cout?<<?"后序遍歷:"?<<?endl;?? ????postOrderTraverse(T);?? ????cout?<<?endl?<<?endl;?? ?? ????return?0;?? }??
?
???????? 結果為:
?
先序遍歷:
1 2 4 5 3 6 7
中序遍歷:
4 2 5 1 6 3 7
后序遍歷:
4 5 2 6 7 3 1
總結
以上是生活随笔為你收集整理的用递归方法对二叉树进行先序、中序和后序遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。