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

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

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

2020-01-26 15:24:53
字體:
來源:轉載
供稿:網友

本文詳細講述了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
国产精品国产三级国产aⅴ9色| 欧美日韩中国免费专区在线看| 午夜精品久久久久久99热| 国产精品久久一区主播| 日韩小视频在线观看| 国产精品亚洲美女av网站| 日韩av在线一区二区| 日韩高清中文字幕| 日韩精品亚洲精品| 国产91色在线| 欧美日韩免费在线观看| 亚洲国产精品成人va在线观看| 亚洲无线码在线一区观看| 欧美插天视频在线播放| 秋霞成人午夜鲁丝一区二区三区| 97色在线观看免费视频| 亚洲精品白浆高清久久久久久| 亚洲高清色综合| 色噜噜狠狠狠综合曰曰曰88av| 欧美一级在线播放| 一本一道久久a久久精品逆3p| 国产精品十八以下禁看| 亚洲人午夜精品| 深夜福利91大全| 欧美性高潮床叫视频| 国产日韩欧美在线看| 精品自在线视频| 成人免费视频在线观看超级碰| 精品久久久999| 97人洗澡人人免费公开视频碰碰碰| 国产精品都在这里| 久久久久亚洲精品成人网小说| 成人免费淫片视频软件| 亚洲第一av网站| 国产高清在线不卡| 中文字幕精品av| 一本大道香蕉久在线播放29| 91精品国产99久久久久久| 2019av中文字幕| 国产一区二区免费| 精品国产一区二区在线| 欧美电影免费观看网站| 精品国产老师黑色丝袜高跟鞋| 麻豆一区二区在线观看| 国产做受69高潮| 亚洲国产天堂久久综合| 亚洲女人初尝黑人巨大| 欧美激情在线狂野欧美精品| 91色在线视频| 欧美电影在线观看完整版| 国内外成人免费激情在线视频| 欧美精品videofree1080p| 国内精品在线一区| 97视频在线免费观看| 在线播放亚洲激情| 亚洲精品国产拍免费91在线| 中文字幕久久精品| 成人av电影天堂| 久久国产精品电影| 日韩精品在线免费播放| 日韩中文有码在线视频| 91在线|亚洲| 福利视频一区二区| 国产精品永久免费观看| 久久99国产精品久久久久久久久| 国产欧美日韩中文字幕| 国产精品自产拍在线观看| 黑人巨大精品欧美一区免费视频| 色偷偷888欧美精品久久久| 亚洲精品视频中文字幕| 91超碰caoporn97人人| 亚洲国产欧美一区二区三区同亚洲| 久久久99免费视频| 国产精品入口尤物| 亚洲高清av在线| 在线免费观看羞羞视频一区二区| 国产精品无码专区在线观看| 久久久久久久久久久免费精品| 法国裸体一区二区| 亚洲乱码一区二区| 91精品免费久久久久久久久| 欧美剧在线观看| 国产精品女视频| 欧美成人精品在线播放| 欧美有码在线视频| 成人激情在线观看| 精品亚洲国产视频| 欧美一区二区三区……| 欧美日韩激情美女| 国产日韩在线视频| 国产免费一区二区三区在线能观看| 欧亚精品中文字幕| 日本精品va在线观看| 日韩精品中文字幕有码专区| 国产不卡精品视男人的天堂| 91香蕉嫩草神马影院在线观看| 日韩在线高清视频| 97免费中文视频在线观看| 日韩va亚洲va欧洲va国产| 欧洲一区二区视频| 国产婷婷色综合av蜜臀av| 日韩在线观看你懂的| 国产精品爽爽爽爽爽爽在线观看| 91久久精品国产91性色| 国产一区二区三区18| 97涩涩爰在线观看亚洲| 91久久嫩草影院一区二区| 欧美视频在线视频| 精品亚洲va在线va天堂资源站| 黑人精品xxx一区一二区| 亚洲国产成人精品久久久国产成人一区| 性金发美女69hd大尺寸| 亚洲成色777777女色窝| 日韩av成人在线观看| 成人国产精品日本在线| 97涩涩爰在线观看亚洲| 精品久久久国产| 97在线观看视频| 91av福利视频| 日本韩国在线不卡| 欧美日韩午夜剧场| 欧美日韩在线看| 亚洲的天堂在线中文字幕| 国产aaa精品| 亚洲国产小视频在线观看| 欧美精品在线免费播放| 在线日韩中文字幕| 亚洲欧美激情四射在线日| 欧美在线视频在线播放完整版免费观看| 亚洲男人的天堂在线| 最好看的2019的中文字幕视频| 中文字幕免费国产精品| 国产精品1区2区在线观看| 欧美一级黄色网| 69影院欧美专区视频| 久久久欧美一区二区| 一区二区三区视频免费| 69视频在线免费观看| 国产视频精品一区二区三区| 中文字幕欧美专区| 久久综合电影一区| 日韩精品中文字幕久久臀| 国产精品亚洲精品| 日韩欧美中文字幕在线播放| 国产精品免费久久久久影院| 亚洲无线码在线一区观看| 日韩中文字幕在线免费观看| 97成人精品视频在线观看| 欧美在线欧美在线| 亚洲男人的天堂在线| 亚洲欧美日韩一区二区在线| 日韩精品视频免费在线观看| 2019日本中文字幕| 91美女福利视频高清| 国产精品自拍小视频| 欧美在线激情视频| 欧美在线视频一区二区| 日韩中文字幕第一页| 日韩福利在线播放| 亲爱的老师9免费观看全集电视剧| 亚洲bt欧美bt日本bt| 欧美xxxx做受欧美| 国模精品系列视频| 国产成人精品国内自产拍免费看|