- Câu hỏi 170757:
Đị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
- Câu hỏi 170796:
Cho đoạn mã sau
stack <int> s; for (int i = 1; i <= 5; i++)
s.push(i);
while (!s.empty()) {
cout << s.top() << endl; s.pop(); }
Kết quả in lên màn hình là gì?
A. 1, 3, 5
B. 1, 2, 3, 4, 5
C. 2, 4, 5
D. 5, 4, 3, 2, 1
- Câu hỏi 170823:
Đoạn mã cài đặt chèn thêm một phần tử mới vào đầu của danh sách liên kết đơn:
void insertFirst ( LIST &Q, Node *new_element ){
if ( Q.Head == NULL ) //nếu danh sách rỗng
{
Q.Head = new_element;
Q.Tail = Q.Head;
}
else//danh sách không rỗng
{
[1] ……………
[2] ……………
}
}
Đoạn mã còn thiếu để đặt vào dòn số [1] và [2].
A. Q.Head = new_element;
new_element -> next = Q.Head;
B. new_element -> next = Q.Head;
Q.Head = new_element;
C. new_element -> next = Q.Head;
Q.Head -> next = new_element;
D. new_element -> next = NULL;
Q.Head -> next = new_element;
- Câu hỏi 83249:
Cho thuật toán tìm nhị phân không đệ quy sau:
int NrecBinarySearch( int M[], int N, int X)
{
int First = 0;
int Last = N -1;
while ( First <= Last)
{
int Mid = (First + Last)/2;
if ( X == M[Mid]) return Mid;
if ( X < M[Mid]) Last = Mid - 1;
else First = Mid + 1;
}
return -1;
}
Chọn câu đúng nhất trong trường hợp tốt nhất khi phần tử ở giữa của mảng có giá trị bằng X:
A. Số phép gán: Gmin = 3 Số phép so sánh: Smin = 2
B. Số phép gán: Gmin = 2 Số phép so sán: Smin = 3
C. Số phép gán: Gmin = 0 Số phép so sánh: Smin = 2
D. Số phép gán: Gmin = 2 Số phép so sánh: Smin = 2
- Câu hỏi 305015:
Các thao tác cơ bản trên danh sách gồm thao tác gì:
A. bổ sung, loại bỏ, cập nhật
B. tách, ghép, …
C. tìm kiếm, sắp xếp, sao chép
D. Tất cả các thao tác trên
- Câu hỏi 114199:
Cho thuật toán sắp xếp Bubble Sort như sau:
void BubbleSort( int M[], int N)
{
for( int i = 0; i< N-1; i++)
for( int j = N-1; j>I; j--)
if( M[j] <M[j-1]) Swap( M[j], M[j-1]);
return ;
}
Chọn câu đúng nhất cho hàm Swap:
A. void Swap( int *X, int *Y)
{
int Temp = X;
X=Y;
Y = Temp;
return ;
}
B. void Swap( int X, int Y)
{
int Temp = X;
X=Y;
Y = Temp;
return ;
}
C. void Swap( floatX, float Y)
{
int Temp = X;
X=Y;
Y = Temp;
return ;
}
D. void Swap( int &X, int &Y)
{
int Temp = X;
X=Y;
Y = Temp;
return ;
}
- Câu hỏi 241689:
Cho mảng a gồm các phẩn tử có giá trị như sau:
1356
Số lần hoán vị 2 phần tử khác nhau khi áp dụng thuật toán nổi bọt để sắp xếp mảng giảm dần là:
- Câu hỏi 241696:
Cho mảng a gồm các phẩn tử có giá trị như sau:
3126
Số lần hoán vị 2 phần tử khác nhau khi áp dụng thuật toán nổi bọt để sắp xếp mảng giảm dần là:
- Câu hỏi 563558:
Độ phức tạp thuật toán được đánh giá có loại nào?
A. Cả hai loại được liệt kê
B. Độ phức tạp thời gian
C. Độ phức tạp không gian
D. Không phải các loại liệt kê
- Câu hỏi 563561:
Cho đoạn mã sau, cho biết đoạn mã biểu diễn thuật toán gì?
Bước 1: S = 1, i = 1;
Bước 2: Nếu i<n thì s = s*i, qua bước 3;
Ngược lại qua bước 4;
Bước 3: i = i + 1;
Quay lại bước 2;
Bước 4: Xuất S ra màn hình
A. Tính (n-1)!
B. Tính tổng các giá trị 1+2+3+…+n
C. Tính tổng các giá trị 1*1*2*3*…*n
D. Tính n!