zjq010607
BFS小齐
2021-01-22 11:36

递归右子树中为什么是(k,inorder.size()-k-1)

  • c++
#include<iostream>
using namespace std;
void perorder(string inorder, string postorder) {
	if (inorder.size() > 0) {
		char root = postorder[postorder.size() - 1];
		cout << root;//找到根节点并输出
		int k = inorder.find(root);
		perorder(inorder.substr(0, k), postorder.substr(0, k));//递归左子树
		perorder(inorder.substr(k + 1), postorder.substr(k, inorder.size() - k - 1));//递归右子树
	}
}
int main() {
	string inorder, postorder;
	cin >> inorder >> postorder;//输入中序,后序
	perorder(inorder, postorder);//调用先序函数
	return 0;
}

 

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

0条回答