[Unable to find Component]

Cấu trúc dữ liệu và giải thuật - IT05 (255)

Câu hỏi 170802:

Cho khai báo Stack như sau:

struct Stack

{

int top

int nut[max];

};

Cho biết phần tử được lấy ra cuối cùng trong Stack sau là bảo 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]);

A. 5
B. 8
C. 7
D. 4

Câu hỏi 170801:

Các thao tác được định nghĩa cho ngăn xếp một cách tổng quát

A. Push
B. Cả hai đáp án đều sai
C. Cả hai đáp án đều đúng
D. Pop

Câu hỏi 170800:

Cho đoạn mã sau

stack <int> s; for (int i = 1; i <= 5; i++)

s.push(i);

Phần tử được lấy ra cuối cùng của Stack là gì?

A. 1
B. 4
C. 2
D. 3

Câu hỏi 170799:

Cho đoạn mã sau, cho biết kết quả của x?

Stack S;

InitStack(S);

Push(S, “Green”);

Push(S, “Red”);

Push(S, “Yellow”);

Pop(S,x);

Pop(S, x);

A. Green
B. Tất cả các phương án đều đúng
C. Red
D. Yellow

Câu hỏi 170798:

Các ứng dụng cơ bản của hàng đợi gồm

A. Tất cả các phương án đều sai
B. Đảo ngược xâu ký dự
C. Tất cả các phương án đều đúng
D. Chuyển đổi cơ số

Câu hỏi 170797:

Cho khai báo cấu trúc:

struct NodeQueue

{

int info;

struct NodeQueue *next;

struct NodeQueue *pre;

};

struct Queue

{

NodeQueue *Rear, *Front;

}

Queue Q;

Đoạn mã sau đây thực hiện yêu cầu gì?

void initQueue(Queue &Q)

{

Q.Rear = NULL;

Q.Front = NULL;

}

A. Khởi tạo mảng rỗng
B. Khởi tạo hàng đợi rỗng
C. Khởi tạo danh sách rỗng
D. Khởi tạo Stack rỗng

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 170795:

Các trường hợp chèn thêm một phần tử mới vào danh sách liên kết đơn gồm:

A. Chèn thêm vào đầu danh sách và vào cuối danh sách
B. Chèn thêm vào đầu danh sách, vào cuối danh sách và vào sau một phần tử q đã biết
C. Chèn thêm vào cuối danh sách và vào sau một phần tử q đã biết
D. Chèn thêm vào đầu danh sách và vào sau một phần tử q đã biết

Câu hỏi 170794:

void RemoveHead ( LIST &Q ){

Node *p;

if (Q.Head != NULL)

{

p = Q.Head;

…[1] …

free(p);

if ( Q.Head == NULL )

Q.Tail = NULL;

}

}

Dòng lệnh cần thiết được đặt vào chỗ trống tại dòng số [1]:

A. Q.Head -> next = Q.Head;
B. Q.Head = NULL;
C. Q.Head = Q.Head -> next;
D. Q.Head -> next = NULL;

Câu hỏi 170793:

Đối với thuật toán sắp xếp chọn trực tiếp cho dãy phần tử sau (10 phần tử):

16 60 2 25 15 45 5 30 33 20

Cần thực hiện bao nhiêu lựa chọn phần tử nhỏ nhất để sắp xếp mảng M có thứ tự tăng dần

A. 8 lần
B. 10 lần
C. 7 lần
D. 9 lần

Câu hỏi 170792:

Cho thuật toán sau:

int LinearSearch( float M[], int N, float X)

{

int k = 0;

M[N] = X;

while (M[k] !=X)//n+1

k++;

if (k<N) return k;

return -1;

}

Chọn câu đúng nhất trong trường hợp xấu nhất khi không tìm thấy phần tử nào có giá trị bằng X:

A. Số phép gán: Gmax = 1 Số phép so sánh: Smax = N + 2
B. Số phép gán: Gmax = 2 Số phép so sánh: Smax = N + 1
C. Số phép gán: Gmax = 2 Số phép so sánh: Smax = 2N + 2
D. Số phép gán: Gmax = 2 Số phép so sánh: Smax = N + 2

Câu hỏi 170791:

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 đổi chỗ trực tiếp (Bubble Sort) để sắp xếp mảng giảm dần là:

A. 2
B. 4
C. 5
D. 3

Câu hỏi 170784:

Cho các phần tử sau: 31, 19, 36, 20, 41, 17, 33, 32. Tạo cây NPTK từ các phần tử trên. Hãy cho biết sau khi xóa phần tử 33 trên cây sau đó áp dụng phương pháp duyệt RNL thì kết quả thu được thứ tự các phần tử là như thế nào?

A. 31, 19, 36, 20, 41, 17, 32
B. 41, 36, 32, 31, 20, 19, 17
C. 41, 32, 36, 20, 17, 19, 31
D. 31, 36, 41, 32, 19, 20, 17

Câu hỏi 170783:

Cho cây NPTK, Cho biết kết quả duyệt cây theo thứ tự RNL là:

 

A. 46, 36, 33, 31, 30, 16, 14, 11, 8, 6
B. 6, 8, 11, 14, 16, 30, 31, 33, 36, 46
C. 30, 11, 6, 8, 16, 14, 36, 31, 33, 46
D. 8, 6, 14, 16, 11, 33, 31, 46, 36, 30

Câu hỏi 170782:

Phương pháp duyệt NLR là phương pháp duyệt gì?

A. Left - Right - Node
B. Left - Node - Righ
C. Cả 3 lựa chọn đều đúng
D. Node - Left - Right

Câu hỏi 170775:

Cho khai báo Stack như sau:

struct Stack

{

int top

int nut[max];

};

Đoạn mã thực hiện thao tác gì?

void Push( Stack &s, int x)

{

if ( isFull(s) == 1)

{

printf("Stack day");

exit(1);

}

else

{

s.top = s.top + 1;

s.nut[ s.top ] = x;

}

}

A. Thực hiện in lần lượt các phần tử đang có trong Stack
B. Chèn thêm phần tử mới vào đỉnh của Stack
C. Thự chiện xoá phần tử đang có ở đỉnh của Stack
D. Trả lại giá trị phần tử đỉnh của Stack

Câu hỏi 170774:

Đâu là định nghĩa của Ngăn xếp

A. Một kiểu danh sách trong đó được trang bị hai phép toán bổ sung một phần tử vào cuối danh sách và loại bỏ một phần tử ở đầu danh sách
B. Dạng danh sách đặc biệt trong đó các phép toán thêm vào một phần tử mới hoặc loại bỏ một phần tử trong danh sách chỉ được phép thực hiện ở một đầu của danh sách
C. Cả hai đáp án đều sai
D. Cả hai đáp án đều đúng

Câu hỏi 170773:

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);

Get(Q,x);

A. Green
B. Tất cả các phương án đều sai
C. Yellow
D. Red

Câu hỏi 170770:

Cho khai báo cấu trúc cây NPTK:

struct Node

{

     int key;

     Node *Left, *Right;

};

typedef Node *Tree;

và CTC insertNode(Tree &T, item x) để chèn thêm phần tử mới vào cây nhị phân tìm kiếm, nếu chèn thành công trả lại giá trị 0 nếu không chèn thành công trả lại giá trị -1

Đoạn mã nào sau đây để cho phép nhập liên tiếp các số nguyên đến khi bằng 0 thì dừng và tạo cây nhị phân tìm kiếm từ các số nguyên đã nhập đó.

A. Node* searchKey(Tree T, int x) { if (T!=NULL) { if (T->key == x)
{ Node *P = T; return P;} if (T->key > x)
return searchKey(T->Left, x); if (T->key < x)
return searchKey(T->Right, x); } return NULL;}
B. void CreateTree(Tree &T)
{
int x;
while (1)
{
printf("Nhap vao Node: ");
scanf("%d", &x);
if (x == 0) break;
int check = insertNode(T, x);
if (check == -1)
printf("Node da ton tai!");
else if (check == 0)
printf("Khong du bo nho");
}
}
C. void LNR(Tree T){ if(T!=NULL) { LNR(T->Left); printf("%7d",T->key); LNR(T->Right); }}
D. int insertNode(Tree &T, int x){ if (T != NULL) { if (T->key == x) return -1; if (T->key > x)
return insertNode(T->Left, x); else if (T->key < x)
return insertNode(T->Right, x); } T = (Node *) malloc(sizeof(Node)); if (T == NULL) return 0; T->key = x; T->Left = T->Right = NULL; return 1;}

Câu hỏi 170768:

Ứng dụng cơ bản của ngăn xếp gồm

A. Tính giá trị biểu thức
B. Chuyển đổi cơ số
C. Đảo ngược xâu ký tự
D. Tất cả các phương án đều đúng
Trung tâm giáo dục thể chất và quốc phòng an ninh
Khoa kinh tế
Khoa đào tạo từ xa
Trung tâm đào tạo trực tuyến
Khoa đào tạo cơ bản
Khoa điện - điện tử
Khoa du lịch
Khoa Công nghệ thông tin
Viện Công nghệ sinh học và Công nghệ thực phẩm
Trung tâm đại học Mở Hà Nội tại Đà Nẵng
Khoa tiếng Trung Quốc
Khoa tạo dáng công nghiệp
Khoa tài chính ngân hàng
Khoa Tiếng anh
Khoa Luật

Bản tin HOU-TV số 07 năm 2026

Tuyển sinh đại học Mở Hà Nội - HOU

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.