Font size
WorksheetsCâu hỏi ôn tập về cấu trúc dữ liệu, giải thuật và đệ quy
Total questions: 82
Worksheet time: 41mins
Mối quan hệ giữa cấu trúc dữ liệu và giải thuật có thể minh họa bằng đẳng thức:
Cấu trúc dữ liệu + Giải thuật = Chương trình
Cấu trúc dữ liệu + Chương trình = Giải thuật
Chương trình + Giải thuật = Cấu trúc dữ liệu
Cấu trúc dữ liệu = Chương trình
Để đánh giá cấu trúc dữ liệu chúng ta dựa vào tiêu chí:
Cấu trúc dữ liệu phải tiết kiệm bộ nhớ trong
Cấu trúc dữ liệu phải phản ánh thực tế của bài toán
Cấu trúc dữ liệu phải giúp dễ dàng trong thao tác dữ liệu
Các phương án A, B, C đều đúng
Tiêu chuẩn để đánh giá giải thuật tốt là:
Giải thuật đúng đắn
Giải thuật đơn giản
Giải thuật thực hiện nhanh
Tất cả các tiêu chí A, B, C
Thời gian thực hiện chương trình là:
Một hàm của kích thước dữ liệu đầu vào, ký hiệu là T(n) trong đó n là kích thước (độ lớn) của dữ liệu đầu vào
Một hàm của độ dài dữ liệu đầu vào, ký hiệu là N(x) trong đó x là độ dài của dữ liệu đầu vào
Thời gian ngắn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước n
Thời gian thực hiện chương trình trong trường hợp nhanh nhất trên dữ liệu đầu vào có kích thước n
Thường ta coi T(n) là thời gian thực hiện chương trình trong trường hợp xấu nhất trên dữ liệu vào có kích thước n, tức T(n) là:
Thời gian nhỏ nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước n
Thời gian lớn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước n
Thời gian lớn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước T
Phương pháp để xác định hiệu quả thời gian thực hiện của một giải thuật là:
Lập trình hoạt động trên một máy tính xác định xác định đối với tập hợp được chọn lọc các dữ liệu vào
Đo lường thời gian thực hiện của hoạt động trên một máy tính xác định đối với tập hợp được chọn lọc các dữ liệu vào
Cả A & B đều sai
Cả A & B đều đúng
Khi ta nói thời gian thực hiện của một chương trình là T(n) = Cn thì có nghĩa là chương trình ấy:
Cần C chỉ thị thực thi
Cần T(n) chỉ thị thực thi
Cần n chỉ thị thực thi
Cần Cn chỉ thị thực thi
Phương pháp để xác định hiệu quả thời gian thực hiện của một giải thuật là
Lập trình hoạt động trên một máy tính xác định xác định đối với tập hợp được chọn lọc các dữ liệu vào
Đo lường thời gian thực hiện của hoạt động trên một máy tính xác định đối với tập hợp được chọn lọc các dữ liệu vào
Cả A & B đều sai
Cả A & B đều đúng
Tìm mệnh đề sai trong các mệnh đề sau, một cấu trúc dữ liệu bao gồm:
Một tập hợp nào đó các dữ liệu thành phần
Các dữ liệu thành phần đặt sát nhau trong bộ nhớ
Kiểu dữ liệu là một tập hợp nào đó các phần tử dữ liệu cùng chung một thuộc tính
Cả A, B, C đều là mệnh đề sai
Trong giải thuật, bài toán liệt kê là:
Bài toán yêu cầu đưa ra danh sách các cấu hình
Bài toán phân tích đối tượng thành nhiều thành phần
Bài toán tính số tổ hợp chập k của n theo công thức truy hồi
Tất cả đều đúng
Thuật toán đệ quy là:
Thuật toán có lời gọi đến một thuật toán khác
Thuật toán có lời gọi đến chính nó nhưng với kích thước lớn hơn
Thuật toán có lời gọi trực tiếp đến chính nó nhưng với kích thước nhỏ hơn
Thuật toán có lời gọi trực tiếp hoặc gián tiếp đến chính nó nhưng có kích thước nhỏ hơn
Cơ chế thực hiện giải thuật đệ quy bao gồm:
Một giai đoạn chính là đi từ trên xuống
Một giai đoạn chính đi từ dưới lên
Hai giai đoạn chính: đi từ trên xuống và đi từ dưới lên
Tất cả các đáp án A, B, C đều sai
Cho hàm đệ quy sau: int factorial(int n) { if (n == 0) // Phần neo. return 1; else // Phần gọi đệ quy. return factorial(n - 1) * n; } Sau mỗi lần gọi đệ quy thì giá trị của biến n:
Tăng lên 1 đơn vị
Giảm xuống 1 đơn vị
n có giá trị bằng 0
n có giá trị bằng 1
Một hàm đệ quy được định nghĩa bởi:
2 phần
3 phần
1 phần
Không chia thành các phần
Số bước thực hiện thuật toán đệ quy cho bài toán Tháp Hà Nội với số lượng đĩa 3 là:
5 bước
6 bước
7 bước
8 bước
Nhược điểm của thuật toán đệ quy là:
Tốn bộ nhớ
Tốn thời gian
Dễ gây tràn bộ nhớ
Tất cả các phương án A, B, C
Đoạn mã nguồn sau trả lại kết quả bằng bao nhiêu khi nhập n = 4: int sum(int n) { if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; }
Kết quả là 9
Kết quả là 10
Kết quả là 11
Kết quả là 8
Đoạn mã nguồn sau trả lại kết quả bằng bao nhiêu khi nhập n = 5: int fibbonacci(int n) { if(n == 0){ return 0; } else if(n == 1) { return 1; } else { return (fibbonacci(n-1) + fibbonacci(n-2)); } }
Kết quả là 5
Kết quả là 8
Kết quả là 6
Kết quả là 9
Đoạn mã nguồn sau trả lại kết quả bằng bao nhiêu khi nhập base = 3, a = 4: int power(int base, int a) { if (a != 0) return (base * power(base, a - 1)); else return 1; }
Kết quả là 82
Kết quả là 81
Kết quả là 69
Kết quả là 98
Số lần gọi đệ quy trong đoạn mã nguồn sau đây là bao nhiêu khi nhập n = 9: int display(int n) { if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; }
Thực hiện gọi đệ quy 8 lần
Thực hiện gọi đệ quy 7 lần
Thực hiện gọi đệ quy 9 lần
Thực hiện gọi đệ quy 10 lần
Danh sách là gì trong lập trình
Một dãy số nguyên
Một cấu trúc dữ liệu lưu trữ các phần tử liên tiếp
Một phương thức sắp xếp dữ liệu
Một loại biến đặc biệt
Trong danh sách, cách truy cập vào phần tử có chỉ số là:
Dấu ngoặc vuông ([])
Dấu ngoặc tròn (())
Dấu ngoặc nhọn ({})
Dấu ngoặc kép (" ")
Đặc điểm quan trọng của danh sách là:
Các phần tử có thể thay đổi
Các phần tử không thể thay đổi
Chỉ chứa số nguyên
Chỉ chứa chuỗi ký tự
Stack là một cấu trúc dữ liệu có nguyên tắc gì?
FIFO (First In First Out)
LIFO (Last In First Out)
LILO (Last In Last Out)
FIFO (First In Last Out)
Phép toán chính trên stack là:
Push và Pop
Add và Remove
Enqueue và Dequeue
Insert và Delete
Khi một phần tử được thêm vào stack, nó được thêm vào:
Ở đầu danh sách
Ở cuối danh sách
Ở giữa danh sách
Ở đỉnh của stack
Queue hoạt động theo nguyên tắc nào?
LIFO (Last In First Out)
FIFO (First In First Out)
LILO (Last In Last Out)
FIFO (First In Last Out)
Phép toán chính trên queue là:
Push và Pop
Enqueue và Dequeue
Add và Remove
Insert và Delete
Trong queue, phần tử mới được thêm vào ở đâu?
Ở đầu danh sách
Ở cuối danh sách
Ở giữa danh sách
Ở đỉnh của queue
Khi một phần tử được loại bỏ khỏi stack, phép toán đó được gọi là:
Pop
Push
Peek
Empty
Ngăn xếp có thể được triển khai bằng cách sử dụng:
Mảng
Danh sách liên kết
Cả a và b
Cả a, b và cây
Danh sách liên kết đơn và danh sách liên kết kép có điểm khác biệt chính gì?
Số lượng phần tử
Khả năng tìm kiếm
Khả năng chèn và xóa
Không có sự khác biệt
Hãy chọn định nghĩa đúng nhất về danh sách kiểu hàng đợi (Queue)?
Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung một phần tử được thực hiện ở một đầu, gọi là lối sau (rear) hay lối trước (front). Phép loại bỏ không thực hiện được
Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung một phần tử hay loại bỏ được thực hiện ở một đầu danh sách gọi là đỉnh (Top)
Hàng đợi là một danh sách tuyến tính trong đó phép bổ sung một phần tử và phép loại bỏ một phần tử được thực hiện ở tại một vị trí bất kì trong danh sách
Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung phần tử ở một đầu, gọi là lối sau (rear) và phép loại bỏ phần tử được thực hiện ở đầu kia, gọi là lối trước (front)
Cho Stack gồm 5 phần tử {12, 5, 20, 23, 72}, trong đó 72 là phần tử ở đỉnh Stack. Để lấy ra phần tử thứ 4 trong Stack ta phải thực hiện theo phương án nào?
POP(72), POP(23), POP(20)
POP(72), POP(23), PUSH(20)
POP(23), PUSH(23), POP(72)
POP(23), PUSH(72), POP(20)
Phương pháp nào sau đây chính là phương pháp sắp xếp nhanh (Quick sort)?
Phương pháp trộn
Phương pháp vun đống
Phương pháp chèn
Phương pháp phân đoạn
Ý tưởng phương pháp sắp xếp nhanh (Quick sort) là:
Chọn phần tử bé nhất xếp vào vị trí thứ nhất bằng cách đổi chỗ phần tử bé nhất với phần tử thứ nhất; Tương tự đối với phần tử nhỏ thứ hai, ba...
Bắt đầu từ cuối dãy đến đầu dãy, ta lần lượt so sánh hai phần tử kế tiếp nhau, nếu phần tử nào nhỏ hơn được đứng ở vị trí trên
Lần lượt chia dãy phần tử thành hai dãy con bởi một phần tử khoá (dãy con trước khoá gồm các phần tử nhỏ hơn khoá và dãy còn lại gồm các phần tử lớn hơn khoá)
Phân đoạn dãy thành nhiều dãy con và lần lượt trộn hai dãy con thành dãy lớn hơn, cho đến khi thu được dãy ban đầu đã được sắp xếp
Ý tưởng phương pháp sắp xếp Trộn (Merge sort) là:
Bắt đầu từ cuối dãy đến đầu dãy, ta lần lượt so sánh hai phần tử kế tiếp nhau, nếu phần tử nào nhỏ hơn được đứng ở vị trí trên
Lần lượt chia dãy phần tử thành hai dãy con bởi một phần tử khoá (dãy con trước khoá gồm các phần tử nhỏ hơn khoá và dãy còn lại gồm các phần tử lớn hơn khoá)
Chọn phần tử bé nhất xếp vào vị trí thứ nhất bằng cách đổi chỗ phần tử bé nhất với phần tử thứ nhất; Tương tự đối với phần tử nhỏ thứ hai, ba...
Phân đoạn dãy thành nhiều dãy con và lần lượt trộn hai dãy con thành dãy lớn hơn, cho đến khi thu được dãy ban đầu đã được sắp xếp
Cơ chế heap trong sắp xếp vun đống là:
Cây nhị phân đầy đủ với tính chất giá trị của nút cha luôn lớn hơn giá trị hai nút con
Cây nhị phân đầy đủ với tính chất giá trị của nút cha lớn luôn lớn hơn giá trị các nút trong cây con trái và nhỏ hơn giá trị các nút trong cây con phải
Cây nhị phân hoàn chỉnh với tính chất giá trị của nút cha lớn luôn lớn hơn giá trị các nút trong cây con trái và nhỏ hơn giá trị các nút trong cây con phải
Cây nhị phân hoàn chỉnh với tính chất giá trị của nút cha luôn lớn hơn giá trị hai nút con
Trong giải thuật sắp xếp vun đống, ta có 4 thủ tục con (Insert – thêm 1 phần tử vào cây; Downheap – vun đống lại sau khi loại một phần tử khỏi Heap, Upheap – vun đống sau khi thêm một phần tử vào cây; Remove – loại 1 phần tử khỏi cây nhị phân). Để sắp xếp các phần tử trong dãy theo phương pháp vun đống, ta thực hiện 4 thủ tục trên theo thứ tự như thế nào?
Insert – Upheap – Remove – Downheap
Remove – Downheap – Insert – Upheap
Insert – Upheap – Downheap – Remove
Upheap – Downheap – Remove – Insert
Tư tưởng của giải thuật tìm kiếm tuần tự là:
Tìm kiếm dựa vào cây nhị tìm kiếm: Nếu giá trị cần tìm nhỏ hơn gốc thì thực hiện tìm kiếm trên cây con trái, ngược lại ta việc tìm kiếm được thực hiện trên cây con phải.
Lần lượt chia dãy thành hai dãy con dựa vào phần tử khoá, sau đó thực hiện việc tìm kiếm trên hai đoạn đã chia.
So sánh X lần lượt với các phần tử thứ nhất, thứ hai, ... của dãy cho đến khi gặp phần tử có khoá cần tìm.
Tại mỗi bước tiến hành so sánh X với phần tử ở giữa của dãy, Dựa vào bước so sánh này quyết định giới hạn dãy tìm kiếm nằm ở nửa trên, hay nửa dưới của dãy hiện hành.
Trong các giải thuật sắp xếp, giải thuật nào áp dụng phương pháp "Chia để trị"?
Quick sort, Heap sort
Quccick sort, Insert sort
Quick sort, Bubble sort
Quick sort, Merge sort
Thuật toán sắp xếp nào hoạt động bằng cách so sánh từng cặp phần tử và đổi chỗ nếu cần thiết?
Bubble sort
Insertion sort
Selection sort
Merge sort
Thuật toán sắp xếp nhanh (Quick Sort) có độ phức tạp thời gian trong trường hợp xấu nhất là bao nhiêu?
O(1)
O(n)
O(log n)
O(n2)
Cho thuật toán sắp xếp Bubble Sort, chọn câu đúng nhất cho hàm Swap trong đoạn mã 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;}
void Swap(int &X, int &Y) { int Temp = X; X = Y; Y = Temp; return; }
void Swap(float X, float Y) { int Temp = X; X = Y; Y = Temp; return; }
void Swap(int *X, int *Y) { int Temp = X; X = Y; Y = Temp; return; }
void Swap(int X, int Y) { int Temp = X; X = Y; Y = Temp; return; }
Đối với thuật toán sắp xếp chọn trực tiếp cho dãy các phần tử sau: 16 60 2 25 15 45 5 30 33 20. Cần thực hiện bao nhiêu lần chọn lựa phần tử nhỏ nhất để sắp xếp mảng trên có thứ tự tăng dần?
7 lần
8 lần
9 lần
10 lần
Trong cây nhị phân, nút trên cùng được gọi là gì?
Nút gốc
Nút lá
Nút cha
Nút con
Đặc điểm nào mô tả cây nhị phân hoàn chỉnh?
Mỗi nút có tối đa một nút con trái và một nút con phải
Mỗi nút có thể có nhiều hơn một nút con trái và một nút con phải
Mỗi nút không có nút con trái hoặc phải
Mỗi nút có nhiều hơn hai nút con
Trong quá trình duyệt cây nhị phân theo thứ tự trước (preorder), thứ tự duyệt nút là gì?
Nút cha trước, sau đó là nút con trái và nút con phải
Nút con trái trước, sau đó là nút cha và nút con phải
Nút con phải trước, sau đó là nút cha và nút con trái
Nút cha trước, sau đó là nút con phải và nút con trái
Trong cây nhị phân tìm kiếm, giá trị nào nằm ở nút con phải phải lớn hơn giá trị ở nút cha và giá trị ở nút con trái?
Lớn hơn
Nhỏ hơn
Bằng
Không có quy tắc cụ thể
Cây nhị phân cân bằng là gì?
Cây mà mọi nút đều có hai nút con
Cây mà độ cao của cây là tối thiểu
Cây mà độ chênh lệch giữa cây con trái và cây con phải của mọi nút là nhỏ nhất
Cây mà tỷ lệ giữa số nút lá và số nút trong cây là tối ưu
Trong cây nhị phân tìm kiếm, thao tác chèn một giá trị mới thường được thực hiện ở đâu?
Nút lá đầu tiên mà gặp
Nút gốc
Nút lá cuối cùng
Nút lá gần giá trị cần chèn nhất
Trong cây nhị phân, thứ tự duyệt theo thứ tự giảm dần (inorder) sẽ cho ra kết quả như thế nào?
Giá trị giảm dần
Giá trị tăng dần
Giá trị không theo thứ tự cụ thể
Giá trị không hiển thị
Trong cây nhị phân tìm kiếm, thao tác xóa một nút thường yêu cầu làm gì với các nút con của nút cần xóa?
Chuyển tất cả các nút con sang cây con trái
Chuyển tất cả các nút con sang cây con phải
Giữ nguyên cấu trúc cây con trái và cây con phải
Xóa tất cả các nút con
Cây nhị phân đầy đủ là gì?
Cây mà mọi nút đều có đúng hai nút con
Cây mà tất cả các nút đều có giá trị tăng dần
Cây mà tất cả các nút lá đều ở mức cuối cùng
Cây mà tất cả các nút đều có giá trị giảm dần
Trong cây nhị phân tìm kiếm, giá trị ở nút con phải luôn lớn hơn giá trị ở nút cha và giá trị ở nút con trái luôn nhỏ hơn giá trị ở nút cha. Điều này đảm bảo gì?
Cây nhị phân hoàn chỉnh
Cây nhị phân đầy đủ
Thuật toán tìm kiếm hiệu quả
Cây nhị phân tìm kiếm
Trong cây nhị phân tìm kiếm, thứ tự duyệt theo thứ tự giảm dần (inorder) sẽ cho kết quả nào?
Tăng dần
Giảm dần
Ngẫu nhiên
Không xác định
Đối với một cây nhị phân tìm kiếm, thao tác chèn một giá trị mới sẽ được thực hiện ở đâu?
Nút lá cuối cùng
Nút gốc
Nút lá đầu tiên mà gặp
Nút lá gần giá trị cần chèn nhất
Trong cây nhị phân tìm kiếm, thao tác xóa một nút yêu cầu sự xử lý đặc biệt khi nút cần xóa có bao nhiêu nút con?
0
1
2
3
Cây nhị phân cân bằng là gì?
Cây mà tất cả các nút đều có đúng hai nút con
Cây mà độ chênh lệch giữa chiều cao của cây con trái và cây con phải của mọi nút là nhỏ nhất
Cây mà độ chênh lệch giữa số nút lá và số nút trong cây là nhỏ nhất
Cây mà độ chênh lệch giữa chiều cao của cây con trái và cây con phải của mọi nút là lớn nhất
Trong cây nhị phân tìm kiếm, thao tác tìm kiếm một giá trị cụ thể có độ phức tạp thời gian là bao nhiêu trong trường hợp trung bình?
O(1)
O(log n)
O(n)
O(n2)
Khi xóa một nút trong cây nhị phân tìm kiếm, nếu nút đó có hai nút con, nút thay thế sẽ được chọn như thế nào?
Nút con trái của nút cần xóa
Nút con phải của nút cần xóa
Nút lá cuối cùng ở cây con trái của nút cần xóa
Nút lá đầu tiên ở cây con phải của nút cần xóa
Trong cây nhị phân tìm kiếm, nếu thực hiện thao tác tìm kiếm và giá trị không tồn tại trong cây, kết quả sẽ là gì?
Giá trị gần nhất
Null
Giá trị 0
Giá trị lớn nhất trong cây
Trong cây nhị phân tìm kiếm, việc sắp xếp các nút theo thứ tự giảm dần (inorder) được thực hiện bằng cách nào?
Sử dụng thuật toán sắp xếp nổi bọt
Sử dụng thuật toán quicksort
Sử dụng thuật toán mergesort
Thực hiện thao tác duyệt theo thứ tự giảm dần trên cây
Đồ thị là gì?
Tập hợp các điểm và cạnh
Phương trình toán học
Tập hợp các hình học
Bảng số liệu
Trong đồ thị vô hướng, mỗi cạnh nối:
2 đỉnh
3 đỉnh
4 đỉnh
5 đỉnh
Một đồ thị có hướng có bao nhiêu đỉnh có thể kết nối với một đỉnh cụ thể?
0
1
Nhiều hơn 1
Trong đồ thị có hướng, đỉnh có bậc là gì?
Số cạnh kết nối với đỉnh đó
Độ dài của đỉnh
Màu sắc của đỉnh
Tên của đỉnh
Một chu trình trong đồ thị là gì?
Đỉnh không có cạnh
Tập hợp các đỉnh không kết nối
Đường đi đóng thành vòng
Các đỉnh có màu sắc giống nhau
Đồ thị không chu trình được gọi là gì?
Đồ thị đầy đủ
Đồ thị vô hướng
Đồ thị cây
Đồ thị đồng dạng
Trong đồ thị, đỉnh có bậc vào và ra là bao nhiêu?
Bậc vào và bậc ra không liên quan
Chúng luôn bằng nhau
Chúng có thể bằng nhau hoặc khác nhau
Không có khái niệm bậc vào và ra
Một đồ thị được gọi là đồ thị đầy đủ nếu:
Có nhiều đỉnh nhất
Mọi đỉnh đều kết nối với tất cả các đỉnh khác
Không có chu trình
Đỉnh và cạnh có màu sắc đẹp
Trong đồ thị, đường đi ngắn nhất giữa hai đỉnh được gọi là:
Đường đi tối ưu
Đường đi ngắn nhất
Đường đi đẹp nhất
Đường đi tiện ích
Đồ thị có trọng số là gì?
Mỗi đỉnh có một trọng số
Mỗi cạnh có một trọng số
Cả đỉnh và cạnh đều có trọng số
Không có trọng số
Trong đồ thị, liên thông có nghĩa là gì?
Tất cả các đỉnh đều kết nối
Một số đỉnh không kết nối
Tất cả các cạnh đều kết nối
Không có đỉnh nào kết nối
Một đồ thị được gọi là đồ thị cây nếu:
Có nhiều nhánh nhất
Không có chu trình và liên thông
Có nhiều chu trình
Có nhiều đỉnh nhất
Trong thuật toán DFS, các đỉnh được thăm theo thứ tự nào?
Theo thứ tự bậc tăng dần
Theo thứ tự bậc giảm dần
Theo thứ tự tìm thấy đầu tiên
Theo thứ tự tìm thấy cuối cùng
Tìm mô tả đúng nhất cho hàm TinhTong sau: int TinhTong(int N) { int so = 2; int tong = 0; int dem = 0; while (dem < N) { if (KiemTra(so) == 1) { tong = tong + so; dem ++; } so = so + 1; } return tong; } Trong đó int KiemTra(int so) { for (int i = 2; i < so; i++) if (so % i == 0) return 0; return 1; }
Hàm tính tổng N số nguyên đầu tiên
Hàm tính tổng N số nguyên tố nhỏ hơn N
Cả a, b đều sai
Cả a, b đều đúng
Đoạn mã giả 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 B2 B3: IF k < N Thông báo tìm thấy tại vị trí k B4: ELSE Không tìm thấy. B5: Kết thúc
Tìm nhị phân phần tử có giá trị X
Tìm phần tử nhỏ nhất của mảng M bao gồm N phần tử
Tìm tuyến tính phần tử có giá trị X
Cả a, c đều sai
Lựa chọn định nghĩa về danh sách đúng nhất?
Danh sách là tập hợp các phần tử có kiểu dữ liệu xác định và giữa chúng có một mối liên hệ nào đó
Số phần tử của danh sách gọi là chiều dài của danh sách
Một danh sách có chiều dài bằng 0 là một danh sách rỗng
Cả a, b, c đều đúng
Cấu trúc dữ liệu mảng có các ưu điểm nào?
Việc thêm, bớt các phần tử trong danh sách đặc có nhiều khó khăn do phải di dời các phần tử khác đi qua chỗ khác
Việc truy xuất và tìm kiếm các phần tử của mảng là dễ dàng vì các phần tử đứng liên nhau nên chúng ta chỉ cần sử dụng chỉ số để định vị vị trí các phần tử trong danh sách (định vị địa chỉ các phần tử)
Mật độ sử dụng bộ nhớ của mảng là tối ưu tuyệt đối
Cả a, b, c đúng
Lựa chọn câu đúng nhất về danh sách liên kết đôi (Doubly Linked List):
Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với 01 phần tử khác trong danh sách
Vùng liên kết của một phần tử trong danh sách liên đôi có 01 mối liên kết với 02 phần tử khác trong danh sách
Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với 02 trước và sau nó trong danh sách
Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với phần tử đầu và cuối của danh sách
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:
Số phép gán: Gmin = 3 Số phép so sánh: Smin = 2
Số phép gán: Gmin = 2 Số phép so sánh: Smin = 3
Số phép gán: Gmin = 2 Số phép so sánh: Smin = 2
Số phép gán: Gmin = 0 Số phép so sánh: Smin = 2
