两序遍历递归建立二叉树

前序中序遍历建立二叉树

 1 Node * createTree1(string pres, string cens) {
 2     if(pres.size() == 0 || cens.size() == 0) {
 3         return nullptr;
 4     }
 5     Node * node = new Node();
 6     node->data  = pres.at(0);
 7     int key = cens.find(pres.at(0));
 8 
 9     string mpres = pres.substr(1, key);
10     string  mcens = cens.substr(0, key);
11     node->left = createTree1(mpres,mcens);
12 
13     mpres = pres.substr(key+1, pres.size()-key-1);
14     mcens = cens.substr(key+1, cens.size()-key-1);
15     node->right = createTree1(mpres,mcens);
16     return node;
17 };
View Code

 

中序后序遍历建立二叉树

后序中序遍历就是将前序中序遍历中的对前序的操作转换为对后序的操作,前序从第一个开始取,后序从后往前取。对中序操作不变

posted @ 2019-11-06 10:43  nefuer  阅读(145)  评论(0编辑  收藏  举报