文章

7

粉丝

502

获赞

2

访问

17.1k

头像
1317 二叉搜索树
学习交流
发布于2024年2月16日 11:57
阅读数 654

正确输出应该是YES和NO,不知道是哪里出了差错sad

  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<cstring>
  4. #include<algorithm>
  5. using namespace std;
  6. bool judge(int s1[], int s2[], int x , int y)
  7. {
  8. if (x != y) return false;
  9. if (x == 0 && y == 0) return true;
  10. if (s1[0] != s2[0]) return false;
  11. else
  12. {
  13. int ls1[10], rs1[10], ls2[10], rs2[10];
  14. int j = 0, k = 0, l = 0, m = 0;
  15. for (int i = 1; i < x; i++)
  16. {
  17. if (s1[i] < s1[0])//小于根节点的值放入左子树
  18. ls1[j++] = s1[i];
  19. else rs1[k++] = s1[i];
  20. }
  21. for (int i = 1; i < y; i++)
  22. {
  23. if (s2[i] < s2[0])
  24. ls2[l++] = s2[i];
  25. else rs2[m++] = s2[i];
  26. }
  27. return judge(ls1, ls2, j, k) && judge(rs1, rs2, l, m);
  28. }
  29. }
  30. int main()
  31. {
  32. int n;
  33. int snum[10], ssnum[10];
  34. while (cin >> n)
  35. {
  36. if (n == 0) break;
  37. string s;
  38. cin >> s;
  39. int len = s.size();
  40. for (int i = 0; i < len; i++)
  41. snum[i] = s[i] - '0';//类型转化
  42. for (int i = 0; i &l...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发