- 陈泽文 的博客
8-5总结
- @ 2024-8-5 16:03:32
1:给定一棵二叉树,其前序遍历结果为:ABDECFG,中序遍历结果为:DEBACFG。请问这棵树的正确后序遍历结果是什么?
A. EDBGFCA
B. EDGBFCA
C. DEBGFCA
D. DBEGFCA
解析:
中序遍历的顺序是:左-根-右
前序遍历的顺序是:根-左-右
后序遍历的顺序是:左-右-根
3:完善程序
#include <iostream>
#include <vector>
using namespace std;
int find_missing(vector<int>& nums) {
int left = 0, right = nums.size() - 1;
while (left < right){
int mid = left + (right - left) / 2;
if (nums[mid] == mid + ①) {
②;
} else {
③;
}
}
return ④;
}
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) cin >> nums[i];
int missing_number = find_missing(nums);
if (missing_number == ⑤) {
cout << "Sequence is consecutive" << endl;
}else{
cout << "Missing number is " << missing_number << endl;
}
return 0;
}
1.①处应填( )
A. 1
B. nums[0]
C. right
D. left
解析:因为如果我的中间项加上公差等于nums[mid],那么就要调整左边界
2.③处应填( )
A. left=mid+1
B. right=mid-1
C. right=mid
D. left=mid