Professional Documents
Culture Documents
1
Cho hàm sau, khi áp dụng với đầu vào là 2 cây trên thì kết quả trả về sẽ là gì?
0
1
Hàm lỗi
2
Cho cây nhị phân tìm tổng quát như hình.
Khi chạy thuật toán ở dưới thì thứ tự các nút được in ra sẽ là
3
Cây nhị phân tổng quát chỉ chứa nút trong có 2 con hoặc nút lá
Cho thứ tự duyệt trước A C D F E G J B I K H L M
thứ tự duyệt giữa D C E F G A B J H K L I M
4
Cho cây nhị phân tìm tổng quát như hình.
Khi chạy thuật toán ở dưới thì
int calculate(TN* root, int level)
{
if(NULL==root) return -1;
if(level==0) {printf("%c ", root->label); return 1;}
calculate(root->left,level-1);
calculate(root->right,level-1);
}
calculate(root,1) in ra B C
calculate(root,1) in ra A
calculate(root,2) in ra D E G
Không có kết quả nào ở trên là đúng
calculate(root,2) in ra B C
5
Cho cây nhị phân tìm tổng quát như hình.
Khi chạy thuật toán ở dưới thì thứ tự các nút được in ra sẽ là
DEBFHGCA
DBEACFGH
ABDECGFH
Không có thứ tự nào ở trên là đúng
6
Cho cây nhị phân tìm tổng quát như hình.
Khi chạy thuật toán ở dưới thì
// meu gap nut la dau tien trong queue --> Khong them tiep cac nut nua
if(p->left==NULL && p->right==NULL)
{
if(firstLeafDepth==-1) firstLeafDepth = currDepth;
if(currDepth==firstLeafDepth)
printf("%c ", p->label);
continue;
}
else if(firstLeafDepth==-1)
{
if (NULL != p->left) Q.push(make_pair(p->left, currDepth + 1));
if (NULL != p->right) Q.push(make_pair(p->right, currDepth + 1));
}
}
printf("\n");
}
printLeaves(root) in ra D E
printLeaves(root) in ra D
printLeaves(root) in ra D E G
printLeaves(root) in ra D E F H
printLeaves(root->right) in ra F H
printLeaves(root->right) in ra C
7
Cho đoạn code sau
8
Cho hàm sau, đâu là khẳng định đúng
Nút gốc root luôn là A
0
1
Hàm lỗi
10
Cho hàm sau, điền gì vào chỗ khuyết ?
A: root->label=label
A: root->label==label
B: left!= NULL
B: left== NULL
C: root->right
C: root->left
11
Cho cây nhị phân tìm tổng quát như hình.
Khi chạy thuật toán ở dưới thì giá trị trả về của hàm sẽ là
7
8
9
Không có kết quả nào ở trên là đúng
10
12
Cho đoạn code sau
13
Cho đoạn code sau
14
Cho cây nhị phân tìm tổng quát như hình.
Khi chạy thuật toán ở dưới thì giá trị trả về của hàm sẽ là
15
Hàm đếm tần số xuất hiện của khóa k trong cây nhị phân
int A;
queue<B> Q;
Q.push(root);
struct Node *cur;
while (!Q.empty()) {
C;
Q.pop();
if(cur->data == k) count++;
D Q.push(cur->left);
E Q.push(cur->right);
}
return count;
}
A: count = 0
A: count
B: struct Node
B: struct Node*
C: cur = Q.front()
C: cur = Q.pop()
D:
D: if(cur->left!=NULL)
E: if(cur->left!=NULL)
E: if(cur->right!=NULL)
E:
16
// Hàm kiểm tra xem hai cây nhị phân có đối xứng với nhau hay không (giá trị tại các nút đối xứng
cũng phải bằng nhau)
bool isMirror(struct Node* left, struct Node* right) {
if (A)
return true;
if (B)
return false;
return (C) && isMirror(left->left, right->right) && isMirror(left->right, right->left);
}
// Hàm kiểm tra xem cây nhị phân có đối xứng hay không
bool isSymmetric(struct Node* root) {
if (root == NULL)
return D;
return isMirror(root->left, root->right);
}
A: left == NULL && right == NULL
A: left == NULL || right == NULL
B: left == NULL || right == NULL
B: left == NULL && right == NULL
C: left->data != right->data
C: left->data == right->data
D: true
D: false
17
// Định nghĩa cấu trúc của một nút trong cây nhị phân
struct Node {
int data; // giá trị nút chỉ là 1 hoặc 0
struct Node* left;
struct Node* right;
};
A: 0
A: -1
B: 0
B: -1
C: left>right?left:right
C: 1+ (left>right?left:right)
18
Cho cây nhị phân tìm tổng quát như hình.
Khi chạy thuật toán ở dưới thì giá trị trả về của hàm sẽ là
19
Cho đoạn code sau
20
Cho hàm sau, khi áp dụng với đầu vào là processTree(root->left, root->right) thì kết quả trả về sẽ là
gì?
root là gốc của cây
processTree(root->left, root->right);
1
2
0
3
Hàm bị lỗi