两序遍历递归建立二叉树

怎甘沉沦 提交于 2019-12-03 16:59:34

前序中序遍历建立二叉树

 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

 

中序后序遍历建立二叉树

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!