- Câu hỏi 313118:
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
- 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 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 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 170826:
Cho khai báo CTDL như sau:
struct CB{ int mcb; char hoten[20]; char ns[12]; float hsl,pc,tt;};struct Node{ CB info; struct Node *next;};
struct List{ Node *head, *tail;};
Đâu là đoạn mã tìm kiếm CanBo theo mã cán bộ trong DSLK đơn
A. Node *TimCBMa(List Q,char k[]){ Node *p; for(p=Q.Head; p!=NULL; p=p->next) if(strcmp(p->info.ns,k)==0) break; return p;}
B. Node *TimCBMa(List Q,int k){ Node *p; for(p=Q.Head; p!=NULL; p=p->next) if(p->info.mcb == k) break;
return p;}
C. Node *TimCBMa(List Q,char k[]){ Node *p; for(p=Q.Head; p!=NULL; p=p->next) if(strcmp(p->info.hoten,k)==0) break; return p;}
D. void TimCBMa(List Q,char k[]){ Node *p; for(p=Q.Head; p!=NULL; p=p->next) if(p->mcb == k) break;}
- Câu hỏi 114193:
Đoạn mã dưới đây mô tả thuật toán gì: B1: k = 1 B2: if M[k] == X and k !=n
B2.1: k++
B2.2: Lặp lại bước 2
B3: if (k<N) thông báo tìm thấy tại vị trí thứ k
B4: else thông báo không tìm thấy
B5: Kết thúc
A. Tìm kiếm tuyến tính phần tử X trong mảng
B. Tìm kiếm nhị phân phần tử có giá trị X
C. Tất cả các lựa chọn trên đều sai
D. Tìm phần tử nhỏ nhất của mảng M gồm N phần tử
- Câu hỏi 241691:
Cho dãy sau: 23, 78, 45, 8, 32, 56. Dùng phương pháp sắp xếp chọn trực tiếp (Selection Sort) để sắp xếp tăng dần, sau 2 lần lặp thì kết quả của dãy là thế nào?
A. 23, 78, 45, 8, 32, 56
B. 8, 23, 45, 78, 32, 56
C. 8, 23, 32, 78, 56, 45
D. 8, 23, 78, 45, 32, 56
- 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 563556:
Để xác định giải thuật đệ quy cần xác định gì?
A. Phần tử neo
B. Cả hai lựa chọn đều đúng
C. Công thức tổng quát
D. Cả hai lựa chọn đều sai