这道题需要用到二叉树的中序排列和前序排列
(此部分仅为没有学过前序排列和后序排列的同学)前序排列的顺序为 根节点→左子树→右子树(根左右) 中序排列的顺序为 左子树→根节点→右子树(左根右)
代码在上面↑
(框架先不讲了,如果框架不会的话,自己回去回炉重造)
1.这道题需要用void函数(函数名随便),函数里需要定义两个字符串,分别表示中序和前序)
2.如果中序数组为空,函数结束。定义一个变量,将这个变量(id)赋值为前序中中序的第一个值的位置(这里要用到字符串方法的应用也就是函数名.find(需要查找的目标))。
3.用substr函数(这些用法我就不一一讲了,后面我会发一篇关于字符串用法的帖子)来递归截取右子树和左子树,中序中左子树的范围是1到id,前序中左子树的范围是0到id。
中序中右子树的位置是id + 1到s.size() - 1 - id,前序中右子树的位置是id + 1到s.size() - 1 - id。
4.主函数内正常输入,最后调用函数