- Câu hỏi 231214:
Cho khai báo cấu trúc dữ liệu như sau:
struct CB{ int mcb; char hoten[20]; char ns[12]; float hsl,pc,tt;};struct Node{ CB info; struct Node *next, *pre;};
struct List{ Node *head, *tail;};
Đoạn mã sau đây thực hiện yêu cầu gì?
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;}
A. Thực hiện tìm kiếm Cán bộ theo tên cán bộ
B. Thực hiện tìm kiếm trong DSLK đơn chứa các CanBo xem có CanBo nào có mã là k hay không? Trả lại thông tin nút chứa cán bộ nếu tìm thấy ngược lại trả lại giá trị NULL
C. Thực hiện tìm kiếm trong DSLK đôi có chứa Cán bộ với tên là k nào đó hay không?
D. Thực hiện tìm kiếm trong DSLK kép chứa các CanBo xem có CanBo nào có tên là k hay không? Trả lại thông tin nút chứa cán bộ nếu tìm thấy ngược lại trả lại giá trị NULL
- Câu hỏi 313093:
Phần tử thế mạng có thể được dùng khi xóa nút trong trường hợp nút có hai nhánh con là gì?
A. Cả hai phát biểu đều sai
B. là phần tử nhỏ nhất trong số các phần tử bên nhánh phải
C. là phần tử lớn nhất trong số các phần tử bên nhánh trái
D. Cả hai phát biểu đều đúng
- Câu hỏi 170760:
Đ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
- Câu hỏi 170765:
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
- Câu hỏi 305014:
Để tiến hành tìm kiếm một phần tử trong danh sách liên kết đơn sử dụng phương pháp tìm kiếm gì?
A. Tìm kiếm tuyến tính và tìm kiếm nhị phân
B. Tìm kiếm nhị phân
C. Tất cả các đáp án đều đúng
D. Tìm kiếm tuyến tính
- Câu hỏi 114188:
Các bước thực hiện tìm kiếm nhị phân phần tử x trên dẫy sắp xếp tăng dần được mô tả như sau:
Bước 1: Khởi đầu tìm kiếm trên tất cả các phần tử của dãy c left = …………… và right = ………………
Bước 2: Tính middle = (left + right)/2. So sánh a[middle] với x. Có 3 khả năng:
- a[middle] = x => Tìm thấy => Dừng
- a[middle] > x => tiếp tục tìm x trong dãy con mới với right = middle - 1 (tìm trong nửa đầu)
- a[middle] < x => tiếp tục tìm x trong dãy con mới với left = middle + 1 (tìm trong nửa cuối)
Bước 3:
- Nếu left <= right => dãy còn phần tử, tiếp tục quay lại bước 2 để tìm kiếm tiếp
- Ngược lại => Dãy hiện hành hết phần tử và dừng thuật toán
Giá trị cần điền vào dấu ………….. là bao nhiêu để thuật toán thực hiện đúng
A. n và 0
B. 0 và n-1
C. n-1 và 0
D. 0 và n
- Câu hỏi 114194:
Cho dãy sau: 42, 23, 74, 11, 65, 58. Dùng phương pháp sắp xếp chèn trực tiếp (Insertion Sort) để sắp xếp tăng dần, sau 3 lần lặp kết quả của dãy là thế nào?
A. 11, 23, 42, 74, 58, 65
B. 11, 23, 42, 65, 74, 58
C. 11, 23, 42, 74, 65, 58
D. 11, 23, 58, 65, 42, 74
- Câu hỏi 114198:
Cho đoạn chương trình:
void QuickSort( int a[ ], int L , int R )
{
int i,j,x;
x= a[(L+R)/2];
i = L; j = R;
do
{
while ( a[i] < x ) i++;
while ( a[j] > x ) j--;
if ( i <= j )
{
Hoanvi (a[i], a[j]);
i++; j--;
}
} while(i<j);
if (L<j) ….
if (i<R) ….
}
Điền giá trị nào vào đoạn …. cho đúng
A. QuickSort(a,L,j);
QuickSort(a,R,i);
B. QuickSort(a,i,R);
QuickSort(a,L,j);
C. QuickSort(a,j,L);
QuickSort(a,i,R);
D. QuickSort(a,L,j);
QuickSort(a,i,R);
- Câu hỏi 241694:
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 3 lần lặp thì kết quả của dãy là thế nào?
A. 8, 23, 32, 78, 45, 56
B. 8, 23, 32, 78, 56, 45
C. 8, 23, 78, 45, 32, 56
D. 23, 78, 45, 8, 32, 56
- 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!