NEW
Font size
WorksheetsBài kiểm tra lập trình và cấu trúc dữ liệu (trích từ worksheet)
Total questions: 76
Worksheet time: 38mins
Nếu x là một biến kiểu số nguyên, để con trỏ p trỏ đến biến x ta viết. Select one.
p=x;
p=&x;
p=*x;
p=x[0];
Hàng đợi còn được gọi là danh sách kiểu. Select one.
FIFO (first in first out)
FOLO (first out last out)
LIFO (last in first out)
FILO (first in last out)
Cho hàm xóa phần tử khỏi ngăn xếp S như sau: ElementType Pop(Stack &S) { Position Temp = S→Next; if( Temp != NULL) { ElementType T = Temp→Element; (1) S→Next = Temp→Next; (2) Delete Temp; (3) return T; (4) } } Phát biểu nào sau đây đúng. Select one.
Câu lệnh 2 có thể thực hiện trước câu lệnh 1
Thứ tự các câu lệnh 1, 2, 3, 4 không thể thay đổi
Câu lệnh 2 có thể thực hiện trước câu lệnh 3
Câu lệnh 3 có thể thực hiện trước câu lệnh 1
Cho khai báo sau: Struct Date{ int ngay, thang, nam; }; Struct SinhVien{ char hoten[40]; Date ngaysinh; }; Sinhvien *sv; Để in ra năm sinh (nam) của sinh viên (sv) ta viết. Select one.
cout<< sv→ngaysinh.nam;
cout<< sv→ngaysinh→nam;
sv.ngaysinh→nam;
cout<< sv.ngaysinh.nam;
Đối với lớp có hàm là N2 , phát biểu nào sau đây là đúng. Select one.
Thời gian chạy không phụ thuộc vào kích thước đầu vào
Ít các thuật toán sắp xếp sử dụng 2 vòng lặp
Khi N được nhân đôi, thời gian chạy sẽ tăng gấp 4
Thời gian chạy của thuật toán là hằng số
Lựa chọn định nghĩa về danh sách đúng nhất. Select one.
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.
Cả a, b, c đều đúng
Một danh sách có chiều dài bằng 0 là một danh sách rỗng.
Thao tác nào dưới đây thực hiện trên hàng đợi (queue). Select one.
Loại bỏ phần tử ở lối sau
Thêm phần tử vào lối sau
Thêm phần tử vào lối trước
Thêm và loại bỏ phần tử tại vị trí bất kỳ
Phát biểu nào sau đây là đúng. Select one.
Ta phải định nghĩa các hàm trước hàm main.
Các hàm không thể gọi chính nó.
Các hàm chỉ có thể được gọi trong hàm main.
Ta có thể định nghĩa các hàm sau hàm main.
Kiểu dữ liệu trừu tượng là ... Select one.
kiểu dữ liệu mà người lập trình phải tự xây dựng dựa trên các kiểu dữ liệu cơ bản được cung cấp từ ngôn ngữ máy.
kiểu dữ liệu mà người lập trình phải tự xây dựng dựa trên các kiểu dữ liệu không cơ bản được cung cấp từ ngôn ngữ lập trình.
kiểu dữ liệu mà người lập trình phải tự xây dựng không dựa trên các kiểu dữ liệu cơ bản được cung cấp từ ngôn ngữ lập trình.
kiểu dữ liệu mà người lập trình phải tự xây dựng dựa trên các kiểu dữ liệu cơ bản được cung cấp từ ngôn ngữ lập trình.
Hãy cho biết hàm sau dùng để làm gì: void ham3 (ElementType X, List &L) { Position P,Q; P=L; while (P→Next!=NULL) { if (P→Next→Element==X) Q=P→Next; P=P→Next; } while (L→Next!=Q→Next) { cout< L=L→Next; } } Select one.
In từ đầu danh sách đến X xuất hiện cuối cùng.
In từ đầu danh sách đến X xuất hiện lần 2.
In từ đầu danh sách đến X xuất hiện đầu tiên.
In từ đầu danh sách đến X.
Với p là biến con trỏ đến mảng, để giải phóng vùng nhớ cho p ta viết. Select one.
delete p;
delete [] p;
free p;
p = free;
Đoạn code sau làm gì: Position Func (List L) { Position P; P=L→Next; return P; } Select one.
Xác định phần tử ở mid list
Xác định số lượng danh sách
Xác định phần tử cuối cùng
Xác định phần tử đầu tiên
Nguyên tắc làm việc của ngăn xếp là. Select one.
LILO (last in – last out)
FILO (First in - last out)
Câu a và c cùng đúng
FIFO (first in - first out)
Đối với lớp có hàm là 2N , phát biểu nào sau đây là đúng?
Lớp số mũ: N! (giai thừa) là cùng loại độ phức tạp
Thời gian chạy là hằng số
Độ phức tạp O(2N) không ảnh hưởng đến kích thước đầu vào
Khi N tăng gấp đôi, thời gian chạy sẽ tăng lên lũy thừa 2
Cho hàm Func được cài đặt trên danh sách liên kết, nội dung các phần tử kiểu số nguyên như sau: void Func(List &L, int X, int Y) { Position P,T; P=L; while(P->Next!=NULL) { if (P->Next->Element==Y) T=P->Next; // (1) Position Temp=new Node; // (1) Temp->Element=X; // (2) // (3) T->Next=Temp; // (4) } } Để hàm Func thực hiện đúng chức năng thêm phần tử có nội dung X vào sau phần tử có nội dung Y xuất hiện sau cùng vào danh sách L thì câu lệnh (3) phải là.. Select one
Temp→Next= T→Next;
P→Next=T→Next;
P→Next=Temp→Next;
Temp→Next=P→Next;
Đoạn code sau làm gì? void Func(ElementType X, Position P, List &L) { Position Temp; Temp = new Node; Temp → Element = X; Temp→Next=P→Next; P→Next=Temp; }
Thêm một phần tử vào đầu ds
Thêm phần tử vào vị trí random
Thêm một phần tử vào sau vị trí P
Thêm 1 phần tử vào cuối ds
Hãy cho biết hàm sau dùng để làm gì? void them (ElementType X, ElementType Y, List &L) { Position P,Q; P=L; while (P→Next!=NULL) { if (P→Next→Element==Y) Q=P→Next; P=P→Next; } InsertList(X,Q,L); }
Thêm X vào trước Y xuất hiện sau cùng.
Thêm X vào sau Y xuất hiện đầu tiên.
Thêm X vào trước Y xuất hiện đầu tiên
Thêm X vào sau Y xuất hiện sau cùng.
Ý nghĩa của đoạn code sau? void Func(Position P, List &L) { Position Temp; if (P→Next!=NULL) { Temp=P→Next; P→Next=Temp→Next; delete Temp; } }
Xóa phần tử cuối ds
Xóa phần tử ngay sau P
Xóa phần tử trước p
Xóa phần tử đầu ds
Đặc trưng nào sau đây không phải của hàm?
Không lồng nhau
Chỉ được gọi 1 lần trong chương trình có chứa hàm.
Được gọi từ hàm main(), từ hàm khác hoặc từ chính nó.
Nằm trong hoặc ngoài văn bản có chương trình gọi đến hàm đó.
Phát biểu nào sau đây sai:
Đa số các bài toán có thời gian thực thi tiệm cận tới một trong các hàm N , N2 , 2N
Đa số các bài toán có thời gian thực thi tiệm cận tới một trong các hàm N , NlogN , 2N
Đa số các bài toán có thời gian thực thi tiệm cận tới một trong các hàm N , N2+2 , logN
Đa số các bài toán có thời gian thực thi tiệm cận tới một trong các hàm N , N3 , logN
Ý nghĩa của đoạn code? typedef int ElementType; typedef struct Node { ElementType Element; Node* Next; }; typedef Node* Position; typedef Node* List;
Khai báo cấu trúc dữ liệu
Khai báo kiểu dữ liệu của danh sách
Khai báo Node
Khai báo List
Phát biểu nào sau đây là đúng? Select one:
Việc tổ chức để lưu trữ dữ liệu phục vụ cho chương trình không có ý nghĩa gì trong toàn bộ hệ thống chương trình
Giải thuật chỉ có thể được minh họa bằng lưu đồ.
Giải thuật dùng để chỉ ra phương pháp hay cách thức giải quyết vấn đề.
Việc xây dựng cấu trúc dữ liệu không quyết định đến chất lượng cũng như công sức của người lập trình
Sắp xếp các câu lệnh sau theo trật tự đúng cho quy trình thêm một phần tử vào vị trí X vào sau vị trí P trong danh sách liên kết đơn (1) Position Temp = new Node; (2) P → Next = Temp; (3) Temp → Element = X; (4) Temp → Next = P → Next;
2, 4, 3, 1
1, 3, 4, 2
1, 2, 3, 4
4, 3, 2, 1
Phát biểu nào sau đây là sai? Select one:
Phép toán cơ bản trên hàng đợi là dequeue
Phép toán cơ bản trên hàng đợi là emptyqueue
Phép toán cơ bản trên hàng đợi là enqueue
Phép toán cơ bản trên hàng đợi là insertqueue
Cho khai báo sau: struct DateOfBirth { int nam; int thang; int ngay; } dob = {9, 7, 8}; Các trường ngày, tháng và năm của biến dob sẽ có giá trị lần lượt là. Chọn một đáp án đúng.
8, 7, 9
8, 9, 7
9, 7, 8
7, 8, 9
Cho hàm sau: Void Func(ElementType X, List &L) { Position Temp = new Node; Temp → Element = X; Temp → Next = L → Next; L → Next = Temp; } Hàm này thực hiện chức năng gì.
Thêm phần tử X vào cuối danh sách L
Xóa phần tử X ở cuối danh sách L
Xóa phần tử X ở đầu danh sách L
Thêm phần tử X vào đầu danh sách L
Hãy cho biết hàm sau dùng để làm gì: void Func(ElementType X, List &L) { Position P; P = L; while (P → Next != NULL) { if (P → Next → Element == X) DeleteList(P, L); else P = P → Next; } PrintList(L); }
Xóa phần tử có nội dung là X cuối cùng
Xóa phần tử có nội dung là X đầu tiên
Xóa phần tử tại vị trí X
Xóa tất cả phần tử có nội dung là X
Khai báo nào sau đây đúng cho hàm thực hiện chức năng tách danh sách liên kết L1 thành hai danh sách L2 và L3. Chọn một đáp án đúng.
void Split(List L1, List &L2, List &L3)
List Split(List L1, List &L2)
void Split(List &L1, List &L2, List &L3)
List Split(List L1, List &L3)
Đặc điểm nào sau đây không phải của hàm có tính đệ quy. Chọn một đáp án đúng.
Chương trình dễ viết và dễ đọc nhưng có thể khó hiểu
Hàm đệ quy sử dụng vùng nhớ HEAP để lưu địa chỉ các lần gọi đệ qua
Chương trình viết ngắn gọn
Việc thực hiện gọi đi gọi lại hàm rất nhiều lần phụ thuộc vào độ lớn của đầu vào
Để lấy loại bỏ một đối tượng ra khỏi Stack, thao tác thường dùng là. Chọn một đáp án đúng.
FULL(x)
POP(x)
EMPTY(x)
PUSH(x)
Giả sử cần sắp xếp mảng M có N phần tử bằng thuật toán sắp xếp nổi bọt (Bubble Sort), thì cần thực hiện bao nhiêu lần. Chọn một đáp án đúng.
N2 lần
N−1 lần
N+1 lần
N lần
Đối với lớp có hàm là N , phát biểu nào sau đây là đúng. Chọn một đáp án đúng.
Thời gian chạy của chương trình tăng theo hàm logarit khi N tăng
Thời gian chạy của chương trình không phụ thuộc vào kích thước đầu vào
Thời gian chạy của chương trình là hằng số
Thời gian chạy của chương trình là tuyến tính, N tăng gấp đôi thì thời gian chạy nhân gấp đôi
Ý nghĩa của đoạn code: bool Func(List &L) { return L → Next == NULL; }
Kiểm tra ds rỗng
Trả về phần tử cuối ds
Trả về phần tử NULL
Kiểm tra độ dài ds
Thao tác Push(x) dùng trong Stack là để. Chọn một đáp án đúng.
Bổ sung một phần tử vào đỉnh Stack
Bổ sung một phần tử vào đầu Stack
Bổ sung một phần tử bất kì vào Stack
Bổ sung một dãy các phần tử vào đỉnh Stack
Khi in (xuất) danh sách liên kết thì phát biểu nào sau đây là đúng. Chọn một đáp án đúng.
Không thể xuất danh sách liên kết khi nó rỗng
Danh sách liên kết luôn luôn không thay đổi
Danh sách liên kết luôn luôn thay đổi
Danh sách liên kết có thể thay đổi tùy thuộc vào nội dung của nó
Đối với lớp có hàm là N3 , phát biểu nào sau đây là đúng. Chọn một đáp án đúng.
Thời gian chạy không phụ thuộc vào kích thước đầu vào
Khi N tăng gấp đôi, thời gian chạy sẽ tăng gấp 8
Thời gian chạy của thuật toán là hằng số
Đa số các thuật toán sắp xếp sử dụng 3 vòng lặp
Các kiểu dữ liệu cơ bản là .... Chọn một đáp án đúng.
các kiểu dữ liệu mà người lập trình được cung cấp sẵn từ máy tính
các kiểu dữ liệu mà người lập trình được cung cấp sẵn từ ngôn ngữ tự nhiên
các kiểu dữ liệu mà người lập trình được cung cấp sẵn từ ngôn ngữ máy
các kiểu dữ liệu mà người lập trình được cung cấp sẵn từ ngôn ngữ lập trình
Danh sách (DS) thường được phân thành mấy loại. Chọn một đáp án đúng.
1 loại: danh sách đặc
2 loại: danh sách đặc (mảng) và danh sách liên kết (con trỏ)
4 loại: danh sách đặc, danh sách liên kết, danh sách cây và danh sách đồ thị
3 loại: danh sách đặc, danh sách liên kết và danh sách cây
Danh sách tuyến tính là gì?
Danh sách mà quan hệ lân cận giữa các phần tử được xác định.
Danh sách tuyển tính là một danh sách rỗng.
Danh sách tuyến tính là một danh sách có dạng (a1, a2, ..., an).
Danh sách đang được lưu dưới dạng mảng.
Nếu trong hàm có nhiều đối số hình thức thì chúng cách nhau bởi dấu gì?
Chấm phẩy (;)
Hai chấm (:)
Chấm (.)
Phẩy (,)
Quá trình khử đệ qui bằng cách sử dụng ngăn xếp được thực hiện qua bao nhiêu bước?
2 bước
4 bước
5 bước
3 bước
Ý nghĩa của đoạn code sau? Position Func (Position P, List L) { Position Temp; if (P==L) return NULL; else { Temp=L; while (Temp→Next!=P) Temp→Next; return Temp; } }
Xác định phần tử ngay sau P
Xác định phần tử trước P
Xác định phần tử đầu ds
Xác định phần tử cuối ds
Chọn phát biểu đúng trong các phát biểu dưới đây: Bằng cách chạy thử một thuật toán với một bộ dữ liệu, ta có thể:
Khẳng định thuật toán sai nếu chạy chậm
Khẳng định thuật toán sai nếu cho kết quả sai
Khẳng định thuật toán đúng nếu cho kết quả đúng
Khẳng định thuật toán đúng nếu chạy nhanh
Khi danh sách rỗng, phát biểu nào sau đây là đúng?
Giá trị của cả hai hàm đều là giá trị hợp lệ.
Danh sách không có phần tử nào.
Giá trị hàm EndList(L) là NULL và hàm FirstList(L) là một vị trí hợp lệ.
Giá trị hàm EndList(L) và hàm FirstList(L) luôn luôn bằng nhau.
Cho hàm Func được cài đặt trên danh sách liên kết, nội dung các phần tử kiểu số nguyên như sau: void Func(List &L) { Position Temp=L, P; while(Temp→Next!=NULL) { P=Temp; Temp=Temp→Next; } P→Next=NULL; delete Temp; } Hàm Func trên thực hiện chức năng gì?
Xóa phần tử đứng trước phần tử cuối cùng trong danh sách L.
Xóa phần tử đầu tiên trong danh sách L.
Xóa phần tử cuối cùng trong danh sách L.
Xóa phần tử tại vị trí P trong danh sách L.
Cho hàm như sau: int Func(int n, int a, int b) { if(n==0) return a*b; else return Func(n-2,a-2,b)*Func(n-2,a,b-2); } Phát biểu nào sau đây là sai?
Lời gọi hàm Func(5, 6, 7) không trả về kết quả vì giá trị vượt quá miền giá trị kiểu int.
Lời gọi hàm Func(5, 6, 7) không trả về kết quả vì không dừng đệ qui được.
Lời gọi hàm Func(4, 5, 7) và Func(4, 7,5) trả về kết quả giống nhau.
Lời gọi hàm Func(4, 5, 6) trả về kết quả là 8640.
Nguyên tắc làm việc của hàng đợi là:
Câu a và c cùng đúng
FILO ( … - last out)
FIFO (first in - first out)
LILO (last in – last out)
Để thêm một đối tượng x bất kỳ vào Stack, thao tác thường dùng là:
TOP(x)
POP(x)
PUSH(x)
EMPTY(x)
Ý nghĩa của đoạn code sau? void Func (List L) { if (EmptyList(L) != 0) cout << "Danh sach rong" << endl; else while (L → Next!=NULL) { cout << L → Next → Element << '\t'; L=L→Next; } } Chức năng của hàm là gì?
Hàm xuất phần tử đầu tiên danh sách
Hàm nhập ds
Hàm kiểm tra ds
Hàm xuất ds
Để tạo danh sách rỗng ta viết hàm như sau, chọn phương án đúng: a.Void MakeNullList(List &L) { L= new Node; L→ Next = NULL; } b.Void MakeNullList(List &L) { Node new L; L→ Next = NULL; }
Phương án a đúng.
Phương án b đúng.
Cả hai phương án đều đúng.
Cả hai phương án đều sai.
Phát biểu nào sau đây đúng:
Cấu trúc for chỉ áp dụng với khối lệnh lặp xác định
Cấu trúc switch luôn có case
Trong cấu trúc if có thể có else hoặc không
Cấu trúc while chỉ áp dụng với khối lệnh lặp không xác định
Hãy cho biết hàm sau dùng để làm gì? Position ham2 (ElementType X, List L) { Position P=L; int f=0; while (P->Next!=NULL && f==0) if (P->Next->Element==X) f=1; else P=P->Next; return P->Next; }
Xác định vị trí phần tử đứng sau X.
Xác định vị trí của phần tử có nội dung là X.
Xác định phần tử đứng sau X.
Xác định vị trí phần tử đứng trước X.
Để cài đặt Stack ta có thể dùng phương pháp nào sau đây:
Bằng con trỏ và bằng mảng
Bằng con trỏ
Bằng mảng
Tất cả đều sai
Trong ngôn ngữ lập trình C/C++ có các cấu trúc điều khiển sau:
Rẽ nhánh và lặp.
Tuần tự và rẽ nhánh.
Tuần tự và lặp.
Tuần tự, rẽ nhánh và lặp.
Hãy cho biết thao tác nào không được phép dùng trên cấu trúc ngăn xếp (stack)
Thêm một phần tử vào vị trí bất kì trong ngăn xếp
Xóa một phần tử ở vị trí bất kì khỏi ngăn xếp
Cả b và c
Thêm một phần tử vào đỉnh ngăn xếp
Khi đổi một số nguyên từ hệ thập phân sang hệ nhị phân thì người ta dùng phép chia liên tiếp cho 2 và lấy các số dư (là các chữ số nhị phân) theo chiều ngược lại. Cơ chế sắp xếp này chính là cơ chế hoạt động của cấu trúc dữ liệu:
Hàng đợi (Queue)
Ngăn xếp (stack)
Mảng (array)
Bảng Câu (Record)
Ý nghĩa của đoạn code sau: Position Func (List L) { Position P; P=L; while (P->Next!=NULL) P=P->Next; return P; }
Xác định phần tử đầu tiên
Xác định phần tử ở mid list
Xác định số lượng danh sách
Xác định phần tử cuối cùng
Giải thuật đệ quy là:
Trong giải thuật của nó có lời gọi tới chính nó nhưng với phạm vi nhỏ hơn.
Trong giải thuật của nó có lời gọi tới chính nó.
Trong giải thuật của nó có lời gọi tới chính nó nhưng với phạm vi lớn hơn.
Trong giải thuật của nó có lời gọi tới một giải thuật khác đã biết kết quả.
Giải thuật đệ quy là:
Nếu lời giải của một bài toán T được giải bằng lời giải của một bài toán T1, có dạng giống như T, thì lời giải đó được gọi là lời giải đệ quy.
Nếu lời giải của một bài toán T được giải bằng lời giải của một bài toán T1 khác T, thì lời giải đó được gọi là lời giải đệ quy.
Nếu lời giải của một bài toán T được giải bằng lời giải của một bài toán T1 mà T1 giải được thì lời giải đó được gọi là lời giải đệ quy.
Nếu lời giải của một bài toán T được giải bằng lời giải của một bài toán T1 mà T1 có độ phức tạp khác T, thì lời giải đó được gọi là lời giải đệ quy.
Cho hàm thêm một phần tử X vào vị trí P trong danh sách S như sau: void InsertList(ElementType X, Position P, List &L) { Position Temp; Temp=new Node; (1) Temp.Element=X; (2) Temp->Next=P->Next; (3) P->Next=Temp; (4) } Câu lệnh nào sẽ bị báo lỗi khi biên dịch?
(1)
(3)
(4)
(2)
Các loại danh sách hạn chế là
Danh sách đặc và ngăn xếp.
Hàng đợi và danh sách liên kết.
Ngăn xếp và xếp hàng chờ
Chồng và hàng đợi
Danh sách thường được phân thành bao nhiêu loại?
4 loại
3 loại
5 loại
2 loại
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 nào?
Cấu trúc dữ liệu - Giải thuật = Chương trình
Cấu trúc dữ liệu + Giải thuật = Chương trình
Cấu trúc dữ liệu + Giải thuật = Độ phức tạp
Giải thuật + Bộ nhớ = Cấu trúc dữ liệu
Các tiêu chuẩn đánh giá cấu trúc dữ liệu. Để đánh giá một cấu trúc dữ liệu chúng ta thường dựa vào một số tiêu chí:
Cấu trúc dữ liệu phải phản ánh đúng thực tế của bài toán
Cấu trúc dữ liệu phải dễ dàng trong việc thao tác dữ liệu
Cả a, b, c đều đúng
Cấu trúc dữ liệu phải tiết kiệm tài nguyên (bộ nhớ trong)
Danh sách tuyến tính dạng ngăn xếp là:
Là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào ngăn xếp và cho phép loại bỏ một phần tử khỏi ngăn xếp luôn luôn thực hiện ở một đầu gọi là đỉnh.
Là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào ngăn xếp được thực hiện ở một đầu, và phép loại bỏ không thực hiện được.
Là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào ngăn xếp và phép loại bỏ một phần tử khỏi ngăn xếp luôn luôn thực hiện ở tại một vị trí bất kì trong danh sách.
Là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào ngăn xếp được thực hiện ở một đầu, và phép loại bỏ được thực hiện ở đầu kia.
Trong số các phép toán sau đây, phép toán nào không được dùng đối với mảng:
Tìm kiếm trên mảng
Tạo mảng
Lưu trữ mảng
Bổ sung một phần tử vào mảng
Khi thêm hoặc xóa phần tử vào danh sách liên kết thì phát biểu nào sau đây là đúng?
Danh sách liên kết luôn luôn thay đổi.
Chỉ danh sách liên kết đơn mới thay đổi khi thêm hoặc xóa phần tử.
Danh sách liên kết luôn giữ nguyên kích thước.
Không có thay đổi nào xảy ra trong danh sách liên kết.
Đối với lớp có hàm là logarit của N (LogN), phát biểu nào sau đây là đúng?
Thời gian chạy của nó tăng tuyến tính với N
Thời gian chạy của nó giảm khi N tăng
Thời gian chạy của nó tăng theo hàm logarit khi N lớn dần
Thời gian chạy của nó là hằng số
Ý nghĩa của đoạn code? void Func(List &L) { L = new Node; L→Next = NULL; }
Tạo một Node mới
Tạo một nút mới và gán nó là nút đầu danh sách
Xóa tất cả các nút trong danh sách
Khởi tạo một danh sách mảng
Cho hàm xóa một phần tử khỏi hàng đợi như sau: void DeQueue(Queue &Q) { if(!EmptyQueue(Q)) { Position T; T=Q.Front; (1) Q.Front=Q.Front→Next; (2) if(Q.Front==NULL) Q.Rear=NULL; (3) delete T; (4) } } Ta có thể bỏ câu lệnh nào mà hàm trên vẫn thực hiện đúng chức năng của nó? Chọn một đáp án.
Câu lệnh (2)
Câu lệnh (3)
Câu lệnh (4)
Câu lệnh (1)
Cho hàm thêm 1 phần tử X vào vị trí P trong danh sách L như sau: void InsertList(ElementType X) { Position Temp; (1) Temp = new Node; (2) Temp→Element = X; (3) Temp→Next = P→Next; (4) P→Next = Temp; (5) } Hai câu lệnh nào có thể ghép chung thành một? Chọn một đáp án.
(4) và (5)
(3) và (4)
(1) và (2)
(2) và (3)
Định nghĩa cấu trúc dữ liệu Stack:
Stack là danh sách kết nối.
Stack là một danh sách đặc biệt mà phép thêm vào được thực hiện ở một đầu, và phép loại bỏ được thực hiện ở phần kia của stack.
Stack là cấu trúc dữ liệu được cài đặt bằng con trỏ.
Stack là một danh sách đặc biệt mà phép thêm vào hoặc loại bỏ một phần tử chỉ thực hiện tại một đầu gọi là đỉnh (Top) của Stack.
Đối với lớp có hàm là NLogN, phát biểu nào sau đây là đúng?
Đa số các thuật toán sắp xếp một vòng lặp, cơ số 2 và tìm kiếm nhị phân có thứ tự tăng/giảm dần
Thời gian chạy của thuật toán không phụ thuộc vào kích thước đầu vào
Thời gian chạy của thuật toán là hằng số
N tăng gấp đôi thì thời gian chạy nhân lên nhiều hơn gấp đôi
Cho hàm xóa 1 phần tử khỏi hàng đợi như sau: ElementType DeQueue(Queue &Q) { if( !EmptyQueue(Q)) { Position T = Q.Front→Next; (1) Q.Front = Q.Front→Next; (2) return T→Element; (3) Delete T; (4) } } Ta có thể bỏ câu lệnh nào mà hàm trên vẫn thực hiện được và đúng chức năng của nó:
Câu lệnh (3)
Câu lệnh (1)
Câu lệnh (2)
Câu lệnh (4)
Hàng đợi là danh sách hạn chế có tính chất?
FOFO
LIFO
FILO
FIFO
Ý nghĩa của đoạn code sau? void Func (List &L) { ElementType X; do { cin >> X; if (X!=0) InsertList (X, Last (L), L); }
Đọc nhiều giá trị đầu vào; với mỗi giá trị khác 0 thì chèn vào cuối danh sách L.
Đọc một giá trị rồi xóa nút đầu của danh sách L nếu giá trị khác 0 .
Khởi tạo danh sách L rỗng và dừng ngay khi nhập.
Chỉ chèn giá trị 0 vào đầu danh sách L.
