多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 數據結構 二叉樹 已知前序中序遍歷求后續遍歷的遞歸實現

數據結構 二叉樹 已知前序中序遍歷求后續遍歷的遞歸實現

來源:程序員人生   發布時間:2015-08-03 09:03:31 閱讀次數:2649次

代碼很短,實現起來也很簡單,下面是代碼:

// // main.cpp // PreMidgetPost // // Created by xin wang on 4/29/15. // Copyright (c) 2015 xin wang. All rights reserved. // #include <iostream> //鏈表2叉樹的節點類 template <class T> class BinaryTreeNode{ public: BinaryTreeNode(){LeftChild = RightChild=0;} BinaryTreeNode(const T& e){ data=e; LeftChild=RightChild =0; } BinaryTreeNode(const T& e,BinaryTreeNode *l,BinaryTreeNode *r){ data = e; LeftChild =l; RightChild =r; } T data; BinaryTreeNode<T> *LeftChild,*RightChild; }; //定義1個數組,分別裝前序遍歷和中序遍歷的數組 int pre_order[100]; int mid_order[100]; BinaryTreeNode<int> *translate(int pre_l,int pre_r,int mid_l,int mid_r){ if (pre_r-pre_l<0) {// return 0; } BinaryTreeNode<int> *root;//new1個root節點 root= new BinaryTreeNode<int>; root->data=pre_order[pre_l];//前序遍歷的第1個節點是跟節點 std::cout<<root->data<<"root"<<std::endl; if (pre_r==pre_l) {//如果二者相等,說明只有1個樹節點 root->LeftChild=NULL; root->RightChild=NULL; return root; } int index;//找到中序遍歷中跟節點所在的位置 for (index = mid_l; index<=mid_r; index++) { if (mid_order[index] == pre_order[pre_l]) { break; } } root->LeftChild = translate(pre_l+1, pre_l+(index-mid_l), mid_l, index⑴);//遞歸找到跟節點的左孩子的值 root->RightChild= translate(pre_l+(index-mid_l)+1,pre_r , index+1, mid_r);//遞歸找到根節點右孩子的值 return root; } //將后序遍歷打印出來 void post_Order(BinaryTreeNode<int> *root){ if(root){ post_Order(root->LeftChild); post_Order(root->RightChild); std::cout<<"值"<<root->data<<std::endl; } } int main(int argc, const char * argv[]) { int in=0; std::cout<<"請輸入數組的長度:"<<std::endl; std::cin>>in; std::cout<<"請輸入數組前序"<<std::endl; int zu; int bb=0; int num=0; while (bb<in) { std::cin>>zu; pre_order[num]=zu; num++; bb=bb+1; } std::cout<<"請輸入數組的中序"<<std::endl; int zuzhong; int numzhong=0; int aa=0; while(aa<in){ std::cin>>zuzhong; mid_order[numzhong]=zuzhong; numzhong++; aa=aa+1; } BinaryTreeNode<int> *root = translate(0, in⑴, 0, in⑴); std::cout<<"后序遍歷"<<std::endl; post_Order(root); return 0; }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 一级做a爰性色毛片免费 | 国产精品欧美一区二区三区不卡 | 午夜亚洲国产理论秋霞 | 99精品国产美女福到在线不卡 | 精品一区国产 | 成人福利片 | 国产在线拍揄自揄视精品不卡 | 日本不卡免费高清一级视频 | 嫩草影院在线观看精品视频 | 国内成人免费视频 | 欧美成人一区二区三区不卡 | 免费 黄 色 人成 视频 | 川上优最新中文字幕不卡 | 女人18毛毛片一级毛片 | 国产成人a | 亚洲精品乱码久久久久久蜜桃 | 波多野结衣99 | 自拍偷拍 欧美日韩 | 国产一区二区在线视频播放 | free性欧美极度另类3d | 久久精品二三区 | 中文字幕 亚洲 一区二区三区 | 国产一精品一aⅴ一免费 | 欧美激情精品久久久久 | 老司机一级片 | 午夜网站在线观看 | 国产欧美亚洲专区第一页 | 欧美黑人激情乱妇 | 18av黄动漫网站在线观看 | 伊人网亚洲| wwwxx在线观看| 自拍偷拍欧美亚洲 | 日韩欧美精品 | 一级毛片高清免费播放 | 久久丝袜精品综合网站 | 成人国产一区二区三区精品 | 99精品大香线蕉线伊人久久久 | 欧美美女一级片 | 在线精品日韩一区二区三区 | 淫www| 日本高清无卡码一区二区久久 |