已知中序和按层求先序
样例
输入数据 1
DBEAC
ABCDE
输出数据 1
ABDEC
#include<bits/stdc++.h>
using namespace std;
string s1, s2;
void calc(int l1, int r1, int l2, int r2)
{int i, j;for (i = l2; i <= r2; i++)//找层次遍历中优先输出根节点的位置 {int b = 0;for (j = l1; j <= r1; j++){if (s2[i] == s1[j]){cout << s1[j];//输出根节点 b = 1;break;}}if (b) break;}if (j > l1) calc(l1, j - 1, 0, r2);//遍历左子树 if (j < r1) calc(j + 1, r1, 0, r2);//遍历右子树
}
int main()
{cin >> s1 >> s2;calc(0, s1.length() - 1, 0, s2.length() - 1);cout << endl;return 0;
}
本文发布于:2024-02-02 17:10:44,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170686504445250.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |