Cho s là Stack chứa các giá trị nguyên, Kết quả của đoạn mã sau là gì?
void main()
{
int n=3553, du, b=8;
stack *s;
InitStack(s);
while(n!=0)
{
du = n%b;
Push(s, du);
n = n/b;
}
cout<<“Ket qua la:”;
while( !isEmpty(s))
{
cout<<Pop(s);
}
}
A. 3553
B. 1476
C. 6741
D. 0
Cho đoạn mã sau, cho biết kết quả của x?
Queue Q;
InitQueue(Q);
Put(Q, “Green”);
Put(Q, “Red”);
Put(Q, “Yellow”);
Get(Q,x);
A. Green
B. Yellow
C. Tất cả các phương án đều sai
D. Red
Các thao tác được định nghĩa cho hàng đợi một cách tổng quát
A. Cả hai đáp án đều sai
B. Put
C. Cả hai đáp án đều đúng
D. Get
Cho đoạn mã sau
stack <int> s; for (int i = 1; i <= 4; i++)
s.push(i);
Phần tử được lấy ra đầu tiên của Stack là gì?
Cho các phần tử 5, 10, 3, 42 lần lượt được bổ sung vào hàng đợi (Queue). Phần tử nào được lấy ra cuối cùng
Hàng đợi còn được gọi là danh sách
A. Cả hai đáp án đều đúng
B. Cả hai đáp án đều sai
C. FIFO
D. LIFO
Để tiến hành tìm kiếm một phần tử trong danh sách liên kết đôi sử dụng phương pháp tìm kiếm gì?
A. Cả ba phát biểu đều đúng
B. Tìm kiếm tuyến tính và tìm kiếm nhị phân
C. Tìm kiếm tuyến tính
D. Tìm kiếm nhị phân
Đoạn mã để tạo ra nút mới có thành phần là x trong danh sách liên kết đôi với mỗi nút gồm các thành phần (infor, next, pre) sau:
Node* get_node( Data x ){
Node *p;
p = (Node*)malloc(sizeof(Node));
if ( p == NULL )
{
printf(“Ko du bo nho”);
exit(1);
}
p -> …….. = x;
p -> next = NULL;
p -> pre = NULL;
return p;
}
Điền phần còn thiếu vào chỗ …………..
A. infor
B. link
C. data
D. next
Để sử dụng hàm cấp phát bộ nhớ malloc(), calloc(), new(). Ta phải sử dụng thư viện nào?
A. stdlib.h
B. conio.h
C. string.h
D. stdio.h
Để sắp xếp các phần tử của danh sách liên kết có mấy phương án sử dụng:
A. 5 phương án
B. 3 phương án
C. 2 phương án
D. 4 phương án
Định nghĩa cấu trúc dữ liệu của danh sách liên kết đôi được mô tả như sau:
struct Node
{
int Key;
struct Node *next;
struct Node *pre;
};
Trong đó, khai báo Node *next dùng để mô tả
A. Vùng liên kết quản lý địa chỉ phần tử kế tiếp của phần tử cuối
B. Vùng liên kết quản lý địa chỉ phần tử kế tiếp
C. Con trỏ trở tới phần dữ liệu cuối của danh sách
D. Con trỏ trở tới phần dữ liệu
Thao tác thêm một phần tử vào cây khi so sánh giá trị của phần tử cần thêm vào so với nút đang xét nếu phần tử cần thêm vào lớn hơn thì được thêm vào vị trí nào?
A. Phần tử mới được bổ sung vào nhánh trái của nút đang xét
B. Cả hai phát biểu trên đều đúng
C. Cả hai phát biểu trên đều sai
D. Phần tử mới được bổ sung vào nhánh phải của nút đang xét
Cho dãy số sau: 30, 18, 35, 17, 40, 16, 32, 31, 43, 19. Cho biết kết quả khi duyệt cây được tạo lần lượt từ các phần tử trên bằng phương pháp duyệt RNL(Right Node Left):
A. 16, 17, 19, 18, 31, 32, 43, 40, 35, 30
B. 30, 18, 35, 17, 40, 16, 32, 31, 43, 19
C. 30, 35, 40, 43, 32, 31, 18, 19, 17, 16
D. 43, 40, 35, 32, 31, 30, 19, 18, 17, 16
Tổng các phần tử trên một hàng hoặc của một cột trong ma trận kề của đồ thị vô hướng G = <V,E> đúng bằng
A. Số cạnh liên thuộc với đỉnh của cột hoặc hàng đó
B. Hai lần số cạnh của đồ thị
C. Một nửa số cạnh của đồ thị
D. Tổng bán đỉnh bậc ra của tất cả các đỉnh
Tổng các phần tử hàng i, cột j của ma trận kề đồ thị vô hướng G = <V,E> đúng bằng
A. Hai lần số bậc của đỉnh i, đỉnh j
B. Bậc của đỉnh i, đỉnh j
C. Một nửa số bậc của đỉnh i, đỉnh j
D. Cả ba phương án đều sai
Cho khai báo cấu trúc đồ thị dạng danh sách cạnh như sau:
struct Canh
{
int dd,dc;
float ts;
};
struct DoThiCanh
{
int m;
Canh ds[max];
};
Đâu là đoạn mã để liệt kê danh sách tất cả các cạnh hiện có của đồ thị
A. void XuLy(DoThiCanh G)
{
printf("\n Danh sach canh la: \n");
for(int i = 1; i<=G.m; i++)
printf("\n %d -> %d: %7.1f",
G.ds[i].dd,G.ds[i].dc, G.ds[i].ts);
}
B. void XuLy(DoThiCanh G,int k)
{
int i;
printf("\n Cac dinh ke cua dinh %d la:",k);
for(i=1;i<=G.m;i++)
{
if(G.ds[i].dd == k)
printf("%7d",G.ds[i].dc);
if(G.ds[i].dc == k)
printf("%7d",G.ds[i].dd);
}
}
C. void XuLy(DoThi G, int k){ int i,j; printf("\n Cac dinh ke cua %d la:",k); for(i=1;i<=G.n;i++) if(G.C[k][i]>0) printf("%7d",i);}
D. void XuLy(DoThi G){ printf("\n Ma tran trong so la:\n"); for(int i =1; i<=G.n; i++) { for(int j=1;j<=G.n;j++) printf("%8.1f",G.C[i][j]); printf("\n"); }}
Ngăn xếp còn được gọi là danh sách
A. Cả hai đáp án đều sai
B. Cả hai đáp án đều đúng
C. FIFO
D. LIFO
Cho khai báo Stack như sau:
struct Stack
{
int top
int nut[max];
};
Cho biết phần tử đỉnh hiện tại của Stack là bao nhiều?
int a[] = {4, 5, 6, 7, 8};
int n = 5;
Stack s;
for(int i = 0; i<n; i++)
push(s, a[i]);
Cho khai báo Stack như sau:
struct Stack
{
char color[15];
int nut[max];
};
Cho biết kết quả giá trị được in ra màn hình là gì?
Push(s, “Red”);
Push(s, “Green”);
Push(s, “Blue”);
printf(“\n%15s”, Pop(s));
printf(“\n%15s”, Pop(s));
A. Red
Green
B. Blue
Green
C. Red
Blue
D. Green
Blue
Cho dãy số sau: 30, 18, 35, 17, 40, 16, 32, 31, 43, 19. Cho biết kết quả khi duyệt cây được tạo lần lượt từ các phần tử trên bằng phương pháp duyệt NLR (Node Left Right):
A. 30, 35, 40, 43, 32, 31, 18, 19, 17, 16
B. 30, 18, 35, 17, 40, 16, 32, 31, 43, 19
C. 30, 18, 17, 16, 19, 35, 32, 31, 40, 43
D. 16, 17, 18, 19, 30, 31, 32, 35, 40, 43