亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++實現二叉樹遍歷序列的求解方法

2020-05-23 14:22:16
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了C++實現二叉樹遍歷序列的求解方法,需要的朋友可以參考下
 
 

本文詳細講述了C++實現二叉樹遍歷序列的求解方法,對于數據結構與算法的學習有著很好的參考借鑒價值。具體分析如下:

一、由遍歷序列構造二叉樹

         C++實現二叉樹遍歷序列的求解方法

    如上圖所示為一個二叉樹,可知它的遍歷序列分別為:

                      先序遍歷:ABDECFG

                      中序遍歷:DBEAFCG

                      后序遍歷:DEBFGCA

我們需要知道的是,由二叉樹的先序序列和中序序列可以唯一地確定一棵二叉樹;由二叉樹的后序序列和中序序列也可以唯一地確定一棵二叉樹;但是如果只知道先序序列和后序序列,則無法唯一確定一棵二叉樹。

二、已知二叉樹的先序序列和中序序列,求后序序列。

因為由二叉樹的先序序列和中序序列可以唯一地確定一棵二叉樹,所以進而可以唯一地確定它的后序遍歷。在先序遍歷序列中,第一個結點一定是二叉樹的根結點,而在中序遍歷中,根結點必然將中序序列分割成兩個子序列,前一個子序列就是左子樹的中序序列,后一個子序列就是右子樹的中序序列。根據這兩個子序列的長度,可以在先序序列中找到對應的左子樹先序序列和右子樹先序序列。而左子樹先序序列的第一個結點是左子樹的根結點,右子樹先序序列的第一個結點是右子樹的根結點。如此遞歸地進行下去,便能唯一地確定這棵二叉樹。

C++實現代碼如下:

/************************************************************************* > File Name: Test.cpp > Author: SongLee ************************************************************************/#include<iostream>using namespace std;struct TreeNode{  struct TreeNode* left;  struct TreeNode* right;  char elem;};TreeNode* PostOrderFromOrderings(char* inorder, char* preorder, int length){  if(length == 0)  {    return NULL;  }  TreeNode* node = new TreeNode;  node->elem = *preorder;  int rootIndex = 0;  for(; rootIndex < length; rootIndex++) // 求左子樹的長度  {    if(inorder[rootIndex] == *preorder)      break;  }  node->left = PostOrderFromOrderings(inorder, preorder + 1, rootIndex);  node->right = PostOrderFromOrderings(inorder + rootIndex + 1, preorder + rootIndex + 1, length - (rootIndex + 1));  cout << node->elem << " ";  // 求后序序列,所以最后輸出根結點  return node;}int main(){  char* pre = "ABDECFG";  char* in = "DBEAFCG";  PostOrderFromOrderings(in, pre, 7);  cout << endl;  return 0;}

三、已知二叉樹的后序序列和中序序列,求先序序列。

同理,由二叉樹的后序序列和中序序列也可以唯一地確定一棵二叉樹,所以進而可以唯一地確定先序遍歷序列。因為后序序列的最后一個結點就如同先序序列的第一個結點,可以將中序序列分割成兩個子序列,然后采用類似的方法遞歸地進行劃分。

C++實現代碼如下:

/************************************************************************* > File Name: Test1.cpp > Author: SongLee ************************************************************************/#include<iostream>using namespace std;struct TreeNode{  struct TreeNode* left;  struct TreeNode* right;  char elem;};TreeNode* PreOrderFromOrderings(char* inorder, char* postorder, int length){  if(length == 0)  {    return NULL;  }  TreeNode* node = new TreeNode;  node->elem = postorder[length-1];  int rootIndex = 0;  for(; rootIndex < length; rootIndex++)  // 求左子樹的長度  {    if(inorder[rootIndex] == postorder[length-1])      break;  }  cout << node->elem << " ";  // 求先序序列,所以先輸出根結點  node->left = PreOrderFromOrderings(inorder, postorder, rootIndex);  node->right = PreOrderFromOrderings(inorder + rootIndex + 1, postorder + rootIndex, length - (rootIndex + 1));  return node;}int main(){  char* post = "DEBFGCA";  char* in = "DBEAFCG";  PreOrderFromOrderings(in, post, 7);  cout << endl;  return 0;}

相信本文所述實例對于大家學習數據結構與算法會起到一定的幫助作用。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久人人97超碰精品888| 91禁国产网站| 国产视频精品免费播放| 欧美激情视频一区二区| 日韩美女av在线免费观看| 亚洲第一中文字幕| 精品国产一区av| 国产精品91久久久久久| 91精品国产综合久久久久久蜜臀| 国产精品女人久久久久久| 亚洲国产精品久久久久秋霞不卡| 国产精品日韩在线| 午夜精品免费视频| 青青草原一区二区| 色综合久久天天综线观看| 91久久精品在线| 午夜精品久久久99热福利| 日韩精品在线免费观看视频| 国产69精品99久久久久久宅男| 国产91精品黑色丝袜高跟鞋| 久久香蕉国产线看观看av| 中文字幕亚洲情99在线| 日韩亚洲综合在线| 欧美亚洲午夜视频在线观看| 中文字幕九色91在线| 热久久免费视频精品| 成人欧美在线观看| 欧美一二三视频| 精品国产成人在线| 欧洲成人免费视频| 亚洲精品福利在线| 亚洲成人国产精品| 国产美女91呻吟求| 欧美激情亚洲国产| 亚洲人高潮女人毛茸茸| 国产视频亚洲精品| 久久精品99无色码中文字幕| 久久精品夜夜夜夜夜久久| 欧美乱大交xxxxx| 久久久久久久久久久91| 国产91色在线播放| 国产亚洲a∨片在线观看| 插插插亚洲综合网| 久久久久久久电影一区| 91精品国产自产在线观看永久| 国产成人久久久精品一区| 欧美又大粗又爽又黄大片视频| 亚洲欧美日韩精品久久奇米色影视| 亚洲欧洲在线看| 91在线播放国产| 亚洲一区二区中文字幕| 97成人精品视频在线观看| 亚洲欧洲一区二区三区在线观看| 亚洲网站在线看| 欧美精品在线观看| 国产色视频一区| 最近2019中文字幕大全第二页| 亚洲人成电影网站色www| 在线亚洲欧美视频| 国产精品高精视频免费| 国产精品久久999| 日韩成人网免费视频| 久久亚洲国产成人| 久久亚洲精品中文字幕冲田杏梨| 国产精品精品久久久久久| 国产精品第一页在线| 亚洲网址你懂得| 一色桃子一区二区| 日本一区二区在线播放| 亚洲欧美激情另类校园| 亚洲社区在线观看| 亚洲影院色在线观看免费| 亚洲激情自拍图| 亚洲人成电影网| 日韩有码片在线观看| 国产精品999999| 日产日韩在线亚洲欧美| 国产mv免费观看入口亚洲| 日韩在线观看免费av| 日韩在线精品一区| 91国内在线视频| 欧美激情欧美狂野欧美精品| 精品露脸国产偷人在视频| 中文字幕亚洲一区二区三区| 91在线视频成人| 国产精品高潮呻吟久久av野狼| 日韩av大片免费看| 亚洲午夜精品久久久久久性色| 日韩av快播网址| 一本一道久久a久久精品逆3p| 国产精品久久久久久久一区探花| 日韩久久免费视频| 91久久久久久久一区二区| 91精品久久久久久久久不口人| 最近2019中文免费高清视频观看www99| 久久久久久亚洲精品不卡| 欧美高清在线视频观看不卡| 欧美一级电影在线| 亚洲激情 国产| 国产精品成人播放| 精品久久久久久国产| 欧美电影在线免费观看网站| 欧美老女人性视频| 久久69精品久久久久久久电影好| 疯狂做受xxxx欧美肥白少妇| 日本一区二区在线播放| 综合激情国产一区| 日韩经典中文字幕| 亚洲欧美国产另类| 国产a级全部精品| 欧美日韩人人澡狠狠躁视频| 国产亚洲精品久久久久久777| 亚洲天堂男人天堂女人天堂| 久久久久久久亚洲精品| 日韩国产中文字幕| 成人在线视频网| 国产亚洲欧洲在线| 久久99热这里只有精品国产| 尤物精品国产第一福利三区| 国产精品成人va在线观看| 成人激情视频小说免费下载| 热门国产精品亚洲第一区在线| 亚洲电影av在线| 中文字幕免费精品一区| 亚洲精品福利在线观看| 欧美日韩中文在线观看| 欧美亚洲成人免费| 日韩av理论片| 精品视频在线观看日韩| 国模私拍视频一区| 成人欧美一区二区三区在线湿哒哒| 久久久久久久97| 中文字幕亚洲一区二区三区| 在线日韩日本国产亚洲| 久久影院模特热| 欧美日韩国产成人| 深夜福利91大全| 亚洲美女在线看| 国产欧美亚洲视频| 高潮白浆女日韩av免费看| 欧美美女操人视频| 国产专区欧美专区| 一区二区三区精品99久久| 日韩欧美视频一区二区三区| 日韩欧美在线国产| 亚洲xxxx妇黄裸体| 欧美激情高清视频| 黑人巨大精品欧美一区免费视频| 国产99视频在线观看| 日本成人激情视频| 黑人精品xxx一区| 亚洲午夜色婷婷在线| 亚洲3p在线观看| 茄子视频成人在线| 日韩日本欧美亚洲| 欧美日韩激情小视频| 欧美成人精品一区二区三区| 欧美一级淫片丝袜脚交| www.久久久久| 色无极影院亚洲| 国产999在线| 日韩精品极品视频| 国产精品揄拍500视频| 一区二区三区天堂av|