1. Trang chủ
  2. » Thể loại khác

trắc nghiệm môn Cấu trúc dữ liệu và giải thuật đại học trà vinh

18 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Trắc Nghiệm Môn Cấu Trúc Dữ Liệu Và Giải Thuật Đại Học Trà Vinh
Trường học Đại Học Trà Vinh
Chuyên ngành Cấu Trúc Dữ Liệu Và Giải Thuật
Thể loại trắc nghiệm
Thành phố Trà Vinh
Định dạng
Số trang 18
Dung lượng 357,5 KB

Nội dung

Áp dụng giải thuật sắp xếp chọn trực tiếp (Selection Sort) trên dãy số: 19, 3, 13, 10, 2, 18, 5, 7 Tổng số lần hoán vị sau vòng lặp thứ tư là bao nhiêu? 3 Áp dụng giải thuật sắp xếp nổi bọt (Bubble Sort) trên dãy số: 19, 3, 13, 10, 2, 18, 5, 7 Tổng số lần hoán vị sau vòng lặp thứ hai là bao nhiêu? 9 B Cây bậc M thì mỗi nút có tối đa bao nhiêu cây con? M Bài toán này sau đây không áp dụng giải thuật quay lui để giải quyết vấn đề? Bài toán Tháp Hanoi Bảng băm sử dụng phương pháp băm kép sử dụng bao nhiêu hàm băm? 2 Bảng băm sử dụng phương pháp băm nối kết trực tiếp, số lượng phần tử lưu trữ trong bảng băm là: Không hạn chế, chỉ phục thuộc kích thước bộ nhớ. Bảng băm sử dụng phương pháp dò tuyến tính sử dụng bao nhiêu hàm băm? 1 Bảng băm sử dụng phương pháp nối kết trực tiếp, các phần tử bị xung đột sẽ lưu vào: Cùng một danh sách liên kết. Bảng băm với phương pháp dò tuyến tính, số lượng phần tử tối đa bảng băm có thể chứa là: Bằng kích thước bảng băm Bảng băm với phương pháp dò tuyến tính, số lượng phần tử tối đa bảng băm có thể chứa là: Bằng kích thước bảng băm Cấu trúc dữ liệu của bảng băm sử dụng phương pháp nối kết trực tiếp là: Mảng các danh sách liên kết Cấu trúc dữ liệu của bảng băm sử dụng phương pháp nối kết trực tiếp là: Mảng các danh sách liên kết Cho B Cây bậc 3 rỗng, kết quả sau khi chèn liên tiếp các khóa: 3, 10, 4, 20 vào B Cây này là: Cho biết kết quả in ra màn hình của đoạn chương trình sau: float a=11; int b=4.2; float c; c=a*b; printf("%7.2f",c); 44.00 Cho biết kết quả in ra màn hình của đoạn chương trình sau: float a=11; float b=4; float c; c=a/b; printf("%4.1f",c); 2.8 Cho biết kết quả in ra màn hình của đoạn chương trình sau: int a=10; int b=3; int c; c=a/b; printf(“%d”,c); 3 Cho biết kết quả in ra màn hình của đoạn chương trình sau: float a=11; int b=4.2; float c; c=a*b; printf("%7.2f",c); 44.00 Cho cây nhị phân: Chiều cao của cây là bao nhiêu? 4 Cho cây nhị phân: Áp dụng phương pháp duyệt cây kiểu nào để được kết quả? 2 34 6 10 20 9 17 39 5 30 Thứ tự sau (LRN) Cho cây nhị phân: Áp dụng phương pháp duyệt cây kiểu nào để được kết quả? 30 20 34 2 10 6 5 17 9 39 Thứ tự trước (NLR) Cho cây nhị phân: Áp dụng phương pháp duyệt cây kiểu nào để được kết quả? 2 34 6 10 20 9 17 39 5 30 Thứ tự sau (LRN) Cho dãy các khóa: 1, 3, 4, 2, 3, 3, 0, 10. Dãy khóa này có bao nhiêu Run? 3 Cho dãy số: 19, 13, 18, 7, 2, 10, 5, 3 Áp dụng giải thuật sắp xếp cây (Heap Sort) giai đoạn 2 trên dãy heap, sau khi thực hiện xong vòng lặp thứ nhất được kết quả: 18, 13, 10, 7, 2, 3, 5, 19 Cho dãy số: 19, 3, 13, 10, 2, 18, 5, 7 Áp dụng giải thuật sắp xếp cây (Heap Sort) trên dãy số đã cho, sau khi hiệu chỉnh dãy số trên thành heap (giai đoạn 1) được kết quả như sau: 19, 10, 18, 7, 2, 13, 5, 3 Cho dãy số: 19, 3, 13, 10, 2, 18, 5, 7 Áp dụng giải thuật sắp xếp chọn trực tiếp (Selection Sort) trên dãy số trên, sau vòng lặp thứ nhất được kết quả: 2, 3, 13, 10, 19, 18, 5, 7 Cho dãy số: 19, 3, 13, 10, 2, 18, 5, 7 Áp dụng giải thuật sắp xếp đổi chỗ trực tiếp (Interchange Sort) trên dãy số đã cho, sau vòng lặp thứ nhất được kết quả: 2, 19, 13, 10, 3, 18, 5, 7 Cho dãy số: 19, 3, 13, 10, 2, 18, 5, 7 Áp dụng giải thuật sắp xếp nổi bọt (Bubble Sort) trên dãy số trên, sau vòng lặp đầu tiên được dãy số: 2, 19, 3, 13, 10, 5, 18, 7 Cho dãy số: 3, 10, 13, 18, 2, 19, 5, 7 Áp dụng giải thuật sắp xếp nổi bọt (Bubble Sort) theo thứ tự giảm dần trên dãy số trên, sau vòng lặp đầu tiên được dãy số: 19, 3, 10, 13, 18, 2, 7, 5 Cho đoạn chương trình thao tác trên một danh sách liên kết đơn (không quan tâm dữ liệu) được viết như sau: Node* Dx = NULL; Node* p = Dx; for(i=0; i < 3; i++) { p = p->pNext; p = new(Node); } p->pNext = NULL; Dx = P; Sau khi thực hiện đoạn chương trình, con trỏ Dx trỏ đến đâu? Phần tử được thêm ở vòng lặp thứ ba. Cho đoạn mã lệnh sau: #include int main() { FILE *fs, *ft, *fp; fp = fopen("A.C","r"); fs = fopen("B.C", "r"); ft = fopen("C.C", "r"); fclose(fp, fs, ft); return 0; } Tập tin nào sẽ được đóng khi thực thi đoạn mã lệnh trên? Lỗi thực thi Cho hàm băm h(k) được tính bằng cách lấy mã ASCII của ký tự cuối của k chia lấy phần dư cho 26, với k=”ABC” thì giá trị của h(k) là: 15 Cho hàm băm h(k)=1+(k mod 11), với k=88 thì giá trị của h(k) là: 1 Cho hàm sắp xếp: void ProSort(int a[], int N) { int i, j; for (i=1; ii;j--) if(a[j]< a[j-1]) Swap(a[j], a[j-1]); } Hàm trên cài đặt phương pháp sắp xếp nào? Nổi bọt (Bubble Sort) Cho hàm sắp xếp: void ProSort(int a[], int N) { int i, j; for(i=1; ipNext = p->pNext; if(p == l.pTail) l.pTail = q; else p->pNext->pPrev = q; delete p; } } return x; } Hàm ProNode cài đặt thao tác nào trong danh sách liên kết kép? Xóa phần tử ở sau phần tử q. Cho trước đoạn chương trình: void ProList(List &l, Node* p) { if (l.pHead==NULL) { l.pHead = p; l.pTail = l.pHead; } else { p->pNext = l.pHead; l.pHead->pPrev = p; l.pHead = p; } } Hàm ProList cài đặt thao tác nào trong danh sách liên kết kép? Thêm phần tử vào đầu danh sách. Cho trước đoạn chương trình: typedef struct Node { int Info; Node* pNext; }Node; typedef struct List { Node* pHead; Node* pTail; }List; void ProSort(List &l) { Node *p, *q; p = l.pHead; while(p!=NULL) { q = p->pNext; while(q!=NULL) { if (p->Info > q->Info) Swap(p->Info,q->Info); q = q->pNext; } p = p->pNext; } } Hàm ProSort sắp xếp trên danh sách liên kết đơn dựa trên giải thuật sắp xếp: Đổi chỗ trực tiếp (Interchange Sort). Cho trước đoạn chương trình: typedef struct Node { int Info; Node* pNext; }Node; typedef struct List { Node* pHead; Node* pTail; }List; void ProSort(List &l) { Node *p, *q, *pmin; p = l.pHead; while(p!=NULL) { pmin = p; q = p->pNext; while(q!=NULL) { if (pmin->Info > q->Info) pmin = q; q = q->pNext; } if (pmin != p) Swap(pmin->Info, p->Info); p = p->pNext; } } Hàm ProSort sắp xếp trên danh sách liên kết đơn dựa trên giải thuật sắp xếp: Chọn trực tiếp (Selection Sort). Cho trước đoạn chương trình: typedef struct Node { int Info; Node* pNext; }Node; typedef struct List { Node* pHead; Node* pTail; }List; void ProList(List &l) { Node *p; p = l.pHead; while(p!=NULL) { if (p->Info>=0) print(“%d”,p->Info); p = p->pNext; } } Hỏi hàm ProList thực hiện công việc gì trong danh sách liên kết đơn? In trường Info của các phần tử có giá trị không âm ra màn hình. Cho trước đoạn chương trình: Data ProNode(List &l) { Node *p; Data x; if ( l.pHead != NULL) { p = l.pHead; x = p->data; l.pHead=l.pHead->pNext; l.pHead->pPrev = NULL; delete p; if(l.pHead == NULL) l.pTail = NULL; } return x; } Hàm ProNode cài đặt thao tác nào trong danh sách liên kết kép? Xóa phần tử ở đầu danh sách. Cho trước đoạn chương trình: void ProList(List &l, Node* p) { if (l.pHead==NULL) { l.pHead = p; l.pTail = l.pHead; } else { p->pNext = l.pHead; l.pHead->pPrev = p; l.pHead = p; } } Hàm ProList cài đặt thao tác nào trong danh sách liên kết kép? Thêm phần tử vào đầu danh sách. Cho trước đoạn chương trình: Data ProNode(List &l, Node* q) { Node *p; if (q != NULL) { p = q->pNext; if ( p != NULL) { q->pNext = p->pNext; if(p == l.pTail) l.pTail = q; else p->pNext->pPrev = q; delete p; } } return x; } Hàm ProNode cài đặt thao tác nào trong danh sách liên kết kép? Xóa phần tử ở sau phần tử q. Cho trước hàm searchNode(TREE T, Data X): TNODE* searchNode(TREE T, Data X) { if(T!=NULL) { if(T->Key == X) return T; if(T->Key > X) return searchNode(T->pLeft, X); else return searchNode(T->pRight, X); } return NULL; } Và cây nhị phân tìm kiếm: Hỏi hàm searchNode(TREE T, Data X) khi tìm kiếm khóa 8 trên cây đã cho thì hàm searchNode gọi đệ qui bao nhiêu lần? 0 Đặc điểm cơ bản của phương pháp trộn tự nhiên là: Tận dụng được độ dài ban đầu của tập tin cần sắp xếp. Dạng hàm thể hiện độ phức tạp phải cài đặt lại giải thuật: n3 Data ProList(List &l) { Node *p; Data x; if ( l.pHead != NULL) { p = l.pHead; x = p->Info; l.pHead = l.pHead->pNext; delete p; if(l.pHead == NULL) l.pTail = NULL; } return x; } Hàm ProList cài đặt thao tác nào trong danh sách liên kết đơn? Xóa phần tử ở đầu danh sách. Data ProList(List &l) { Node *p; Data x; if ( l.pHead != NULL) { p = l.pHead; x = p->Info; l.pHead = l.pHead->pNext; delete p; if(l.pHead == NULL) l.pTail = NULL; } return x; } Hàm ProList cài đặt thao tác nào trong danh sách liên kết đơn? Xóa phần tử ở đầu danh sách. Dãy các khóa nào sau đây được gọi là Run (đường chạy) -3, -2, -1, 0 Độ phức tạp của giải thuật sắp xếp đổi chỗ trực tiếp (Interchange Sort). T(n) = O(n2) Độ phức tạp của giải thuật sắp xếp nổi bọt (Bubble Sort). T(n) = O(n2) Độ phức tạp của hàm: int tsle(int a[][],int n) { int i,j,tong=0; for(i=0;iKey); Output(Root->pRight); Output(Root->pLeft); } } Và cây nhị phân: Khi thực hiện hàm Output trên cây đã cho thì khóa nào được in ra màn hình sau cùng? 2 Hàm searchNode(TREE T, Data X) cho trước như sau: TNODE* searchNode(TREE T, Data X) { if(T!=NULL) { if(T->Key == X) return T; if(T->Key > X) return searchNode(T->pLeft, X); else return searchNode(T->pRight, X); } return NULL; } Và cây nhị phân tìm kiếm: Hỏi hàm searchNode(TREE T, Data X) khi tìm kiếm khóa 19 trên cây đã cho thì hàm searchNode gọi đệ qui bao nhiêu lần? 4 Hàm searchNode(TREE T, Data X) cho trước như sau: TNODE* searchNode(TREE T, Data X) { if(T!=NULL) { if(T->Key == X) return T; if(T->Key > X) return searchNode(T->pLeft, X); else return searchNode(T->pRight, X); } return NULL; } Và cây nhị phân tìm kiếm: Hỏi hàm searchNode(TREE T, Data X) khi tìm kiếm khóa 19 trên cây đã cho thì hàm searchNode gọi đệ qui bao nhiêu lần? 4 Hàm searchNode(TREE T, Data X) được cài đặt như sau: TNODE* searchNode(TREE T, Data X) { if(T!=NULL) { if(T->Key == X) return T; if(T->Key > X) return searchNode(T->pLeft, X); else return searchNode(T->pRight, X); } return NULL; } Và cây nhị phân tìm kiếm: Hỏi hàm searchNode(TREE T, Data X) khi tìm kiếm khóa 18 trên cây đã cho thì hàm searchNode gọi đệ qui bao nhiêu lần? 3 Hãy cho biết chiều cao của cây kết quả sau khi chèn liên tiếp các khóa: 4, 7, 9, 10, 13, 15, 16 vào B Cây bậc 3 rỗng? 2 Hãy cho biết chiều cao của cây kết quả sau khi chèn liên tiếp các khóa: 4, 7, 9, 10, 13, 15, 16 vào B Cây bậc 3 rỗng? 2 Hãy cho biết nút gốc của cây kết quả sau khi chèn liên tiếp các khóa: 4, 8, 3, 9, 15, 18 vào B Cây bậc 3 rỗng? 4, 9 int ProKey(TREE T) { TREE p=T; while(p->pRight!=NULL) p=p->pRight; return p->Key; } Thực hiện hàm ProKey trên cây nhị phân sau: thì hàm ProKey trả về giá trị: 30 int ProTree(TREE T) { if(T==NULL) return 0; else return ProTree(T->pLeft) +ProTree(T->pRight); } Thực hiện hàm ProTree trên cây nhị phân sau: thì hàm ProTree trả về giá trị: 10 Kết quả trên màn hình sau khi thực thi đoạn mã lệnh sau là gì? #include int main () { FILE * pFile; char c; pFile = fopen("sample.txt", "wt"); for (c = 'A'; c Info!=k)) p = p->pNext; return p; } Hàm ProList cài đặt thao tác nào trong danh sách liên kết đơn? Tìm phần tử trong danh sách. Nội dung của tập tin “file.c” sau khi thực hiện đoạn mã lệnh sau đây là gì? #include int main() { FILE *fp1, *fp2; fp1=fopen("file.c", "w"); fp2=fopen("file.c", "w"); fputc('A', fp1); fputc('B', fp2); fclose(fp1); fclose(fp2); return 0; } A Phát biểu nào sau đây là đúng về đặc trưng của các nút lá trên B Cây bậc M? Nút lá có nhiều nhất M-1 khóa. Phát biểu nào sau đây là đúng về phương pháp trộn đa lối cân bằng? Gộp quá trình phân phối và quá trình trộn trong cùng một giai đoạn Phương pháp sắp xếp nào sau đây có độ phức tạp thấp nhất? Merge Sort Phương pháp sắp xếp phân hoạch (Quick Sort) thực hiện sắp xếp trên một dãy 9 phần tử đã có thứ tự với tổng số lần hoán vị là bao nhiêu? 0 Phương pháp sắp xếp phân hoạch (Quick Sort) thực hiện sắp xếp trên một dãy 9 phần tử đã có thứ tự với tổng số lần gọi đệ qui là bao nhiêu? 4 Phương pháp trộn Run sử dụng bao nhiêu tập tin trung gian? 2 Phương pháp trộn tự nhiên sử dụng bao nhiêu tập tin trung gian? 2 Số bước lặp của giải thuật trộn tự nhiên phụ thuộc vào yếu tố nào? Số Run ban đầu của tập tin cần sắp xếp. Ta có hai chuỗi A = “qpqrr” và B = “pqprqrp”. Giả sử x là chiều dài của chuỗi con chung dài nhất của A và B, y là số các chuỗi con chung dài nhất của A và B. Giá trị của x + 10y =? 34 Tại sao B Cây được gọi là cây cân bằng? Khoảng cách từ nút gốc đến tất cả các nút lá bằng nhau. Thao tác lấy 1 đối tượng ra khỏi ngăn xếp (Stack) thường được gọi là Pop Thao tác thêm 1 đối tượng vào hàng đợi (Queue) thường được gọi là: Enqueue Tiết kiệm tài nguyên hệ thống. Số khóa của nút gốc luôn nhỏ hơn bậc của cây. Tính độ phức tạp của giải thuật sắp xếp chọn trực tiếp (Selection Sort). T(n) = O(n2) Tính độ phức tạp của giải thuật sắp xếp phân hoạch (QuickSort). T(n) = O(n2) Trên B Cây bậc M, nút được gọi là đầy khi nào? Khi số khóa lớn hơn M-1 Trong bốn phương pháp sắp xếp: chọn trực tiếp (Selection Sort), chèn trực tiếp (Insertion Sort), đổi chỗ trực tiếp (Interchange Sort) và nổi bọt (Bubble Sort). Phương pháp nào thực hiện sắp xếp nhanh nhất với một dãy đã có thứ tự? Giải thích. Chèn trực tiếp (Insertion Sort) do có số lần so sánh ít nhất. Trong khi lưu trữ và quản lý thông tin nhân viên (số lượng tối đa là 1000) gồm: mã số, họ tên, năm sinh và hệ số lương (có phần thập phân) , một lập trình viên khai báo cấu trúc dữ liệu như sau: typedef struct nv { char maso[4]; char hoten[30]; int namsinh; int hsluong; }nv; Cấu trúc dữ liệu trên chưa thỏa tiêu chuẩn đánh giá nào? Phản ánh đúng thực tế. Trong khi lưu trữ và quản lý thông tin nhân viên (số lượng tối đa là 1000) gồm: mã số, họ tên, năm sinh và hệ số lương (có phần thập phân) , một lập trình viên khai báo cấu trúc dữ liệu như sau: typedef struct nv { char maso[100]; char hoten[30]; long namsinh; int hsluong; }nv; Cấu trúc dữ liệu trên chưa thỏa các tiêu chuẩn đánh giá nào? Phản ánh đúng thực tế; tiết kiệm tài nguyên hệ thống. Trong khi lưu trữ và quản lý thông tin nhân viên (số lượng tối đa là 1000) gồm: mã số, họ tên, năm sinh và hệ số lương (có phần thập phân) , một lập trình viên khai báo cấu trúc dữ liệu như sau: typedef struct nv { char maso[100]; char hoten[30]; int namsinh; float hsluong; }nv; Cấu trúc dữ liệu trên chưa thỏa tiêu chuẩn đánh giá nào? Tiết kiệm tài nguyên hệ thống. Ứng dụng phương pháp tìm kiếm tuyến tính để tìm kiếm số 30 trên dãy số sau: 17, 23, 28, 30, 33, 35, 74, 93 Số nào trên dãy số được duyệt đầu tiên? 17 Với cây nhị phân tìm kiếm: Duyệt cây trên theo thứ tự NRL ta được kết quả: 8 20 30 11 18 9 3 5 4 2 Với một chữ cái tượng trưng cho thao tác thêm chữ cái tương ứng vào hàng đợi, dấu * tượng trưng cho thao tác lấy nội dung một phần tử trong hàng đợi in lên màn hình. Hãy cho biết sau khi hoàn tất chuỗi thao tác bên dưới, kết quả xuất hiện trên màn hình? EAS*Y**QUE***ST***I*ON EASYQUESTI void Output(TREE Root) { if (Root != NULL) { Output(Root->pLeft); Output(Root->pRight); printf(“%d ”,Root->Key); } } Hàm Output trên cài đặt phương pháp duyệt cây kiểu nào? Thứ tự sau (LRN) void ProList(List &l, Node* p) { if (l.pHead==NULL) { l.pHead = p; l.pTail = l.pHead; } else { p->pNext = l.pHead; l.pHead = p; } } Hàm ProList cài đặt thao tác nào trong danh sách liên kết đơn? Thêm phần tử vào đầu danh sách. void ProNode(List &l, Data x) { Node *p; p =new(node); p->Info =x; p->pNext =l.pHead; l.pHead =p; } Hàm ProNode cài đặt thao tác nào phù hợp nhất trên ngăn xếp (Stack)? Push void ProSum(int &a, int &b) { a=a+b; b=b+a; } void main() { int x=4; int y=6; ProSum(x, y); printf(“%d %d”,x ,y); } Kết quả in ra màn hình khi thực hiện chương trình trên? 10 16

Trang 1

Áp dụng giải thuật sắp xếp chọn trực tiếp (Selection Sort) trên dãy số: 19, 3, 13,

10, 2, 18, 5, 7

Tổng số lần hoán vị sau vòng lặp thứ tư là bao nhiêu?

3

Áp dụng giải thuật sắp xếp nổi bọt (Bubble Sort) trên dãy số: 19, 3, 13, 10, 2,

18, 5, 7

Tổng số lần hoán vị sau vòng lặp thứ hai là bao nhiêu?

9

Bài toán này sau đây không áp dụng giải thuật quay lui để giải quyết vấn đề? Bài toán Tháp Hanoi

Bảng băm sử dụng phương pháp băm kép sử dụng bao nhiêu hàm băm? 2

Bảng băm sử dụng phương pháp băm nối kết trực tiếp, số lượng phần tử lưu trữ

Bảng băm sử dụng phương pháp dò tuyến tính sử dụng bao nhiêu hàm băm? 1

Bảng băm sử dụng phương pháp nối kết trực tiếp, các phần tử bị xung đột sẽ

lưu vào:

Cùng một danh sách liên kết

Bảng băm với phương pháp dò tuyến tính, số lượng phần tử tối đa bảng băm có

thể chứa là:

Bằng kích thước bảng băm

Bảng băm với phương pháp dò tuyến tính, số lượng phần tử tối đa bảng băm có

thể chứa là:

Bằng kích thước bảng băm

Cấu trúc dữ liệu của bảng băm sử dụng phương pháp nối kết trực tiếp là: Mảng các danh sách liên kết

Cấu trúc dữ liệu của bảng băm sử dụng phương pháp nối kết trực tiếp là: Mảng các danh sách liên kết

Cho B Cây bậc 3 rỗng, kết quả sau khi chèn liên tiếp các khóa: 3, 10, 4, 20 vào

B Cây này là:

Cho biết kết quả in ra màn hình của đoạn chương trình sau:

float a=11;

int b=4.2;

float c;

c=a*b;

printf("%7.2f",c);

44.00

Cho biết kết quả in ra màn hình của đoạn chương trình sau:

float a=11;

float b=4;

float c;

c=a/b;

printf("%4.1f",c);

 2.8

Cho biết kết quả in ra màn hình của đoạn chương trình sau:

int a=10;

int b=3;

int c;

c=a/b;

printf(“%d”,c);

3

Cho biết kết quả in ra màn hình của đoạn chương trình sau:

float a=11;

int b=4.2;

float c;

c=a*b;

printf("%7.2f",c);

44.00

Trang 2

Chiều cao của cây là bao nhiêu?

Cho cây nhị phân:

Áp dụng phương pháp duyệt cây kiểu nào để được kết quả?

2 34 6 10 20 9 17 39 5 30

Thứ tự sau (LRN)

Cho cây nhị phân:

Áp dụng phương pháp duyệt cây kiểu nào để được kết quả?

30 20 34 2 10 6 5 17 9 39

 Thứ tự trước (NLR)

Cho cây nhị phân:

Áp dụng phương pháp duyệt cây kiểu nào để được kết quả?

2 34 6 10 20 9 17 39 5 30

Thứ tự sau (LRN)

Cho dãy các khóa: 1, 3, 4, 2, 3, 3, 0, 10 Dãy khóa này có bao nhiêu Run? 3

Cho dãy số: 19, 13, 18, 7, 2, 10, 5, 3

Áp dụng giải thuật sắp xếp cây (Heap Sort) giai đoạn 2 trên dãy heap, sau khi

thực hiện xong vòng lặp thứ nhất được kết quả:

18, 13, 10, 7, 2, 3, 5, 19

Cho dãy số: 19, 3, 13, 10, 2, 18, 5, 7

Áp dụng giải thuật sắp xếp cây (Heap Sort) trên dãy số đã cho, sau khi hiệu

chỉnh dãy số trên thành heap (giai đoạn 1) được kết quả như sau:

19, 10, 18, 7, 2, 13, 5, 3

Cho dãy số: 19, 3, 13, 10, 2, 18, 5, 7

Áp dụng giải thuật sắp xếp chọn trực tiếp (Selection Sort) trên dãy số trên, sau

vòng lặp thứ nhất được kết quả:

2, 3, 13, 10, 19, 18, 5, 7

Cho dãy số: 19, 3, 13, 10, 2, 18, 5, 7

Áp dụng giải thuật sắp xếp đổi chỗ trực tiếp (Interchange Sort) trên dãy số đã

cho, sau vòng lặp thứ nhất được kết quả:

 2, 19, 13, 10, 3, 18, 5, 7

Cho dãy số: 19, 3, 13, 10, 2, 18, 5, 7

Áp dụng giải thuật sắp xếp nổi bọt (Bubble Sort) trên dãy số trên, sau vòng lặp

đầu tiên được dãy số:

2, 19, 3, 13, 10, 5, 18, 7

Trang 3

Cho dãy số: 3, 10, 13, 18, 2, 19, 5, 7

Áp dụng giải thuật sắp xếp nổi bọt (Bubble Sort) theo thứ tự giảm dần trên dãy

số trên, sau vòng lặp đầu tiên được dãy số:

 19, 3, 10, 13, 18, 2, 7, 5

Cho đoạn chương trình thao tác trên một danh sách liên kết đơn (không quan

tâm dữ liệu) được viết như sau:

Node* Dx = NULL;

Node* p = Dx;

for(i=0; i < 3; i++)

{

     p = p->pNext;

p = new(Node);

}

p->pNext = NULL;

Dx = P;

Sau khi thực hiện đoạn chương trình, con trỏ Dx trỏ đến đâu?

Phần tử được thêm ở vòng lặp thứ ba

Cho đoạn mã lệnh sau:

#include<stdio.h>

int main()

{

FILE *fs, *ft, *fp;

fp = fopen("A.C","r");

fs = fopen("B.C", "r");

ft = fopen("C.C", "r");

fclose(fp, fs, ft);

return 0;

}

Tập tin nào sẽ được đóng khi thực thi đoạn mã lệnh trên?

Lỗi thực thi

Cho hàm băm h(k) được tính bằng cách lấy mã ASCII của ký tự cuối của k chia

lấy phần dư cho 26, với k=”ABC” thì giá trị của h(k) là: 15

Cho hàm băm h(k)=1+(k mod 11), với k=88 thì giá trị của h(k) là: 1

Cho hàm sắp xếp:

void ProSort(int a[], int N)

{

 int i, j;

 for (i=1; i<N; i++)

 for (j=N; j>i;j )

 if(a[j]< a[j-1])

 Swap(a[j], a[j-1]);

}

Hàm trên cài đặt phương pháp sắp xếp nào?

Nổi bọt (Bubble Sort)

Cho hàm sắp xếp:

void ProSort(int a[], int N)

{

 int i, j;

 for(i=1; i<N; i++)

 for (j =i+1; j<=N; j++)

 if(a[j ]< a[i])

 Swap(a[i],a[j]);

}

Hàm trên cài đặt phương pháp sắp xếp nào?

 Đổi chỗ trực tiếp (Interchange Sort)

Trang 4

Cho hàm sắp xếp:

void ProSort(int a[], int N)

{

int i, j;

for (i=1; i<N; i++)

for (j=N; j>i;j )

if(a[j]< a[j-1])

Swap(a[j], a[j-1]);

}

Hàm trên cài đặt phương pháp sắp xếp nào?

Nổi bọt (Bubble Sort)

Cho hàm sắp xếp:

void ProSort(int a[], int N)

{

int i, j;

for(i=1; i<N; i++)

for (j =i+1; j<=N; j++)

if(a[j ]< a[i])

Swap(a[i],a[j]);

}

Hàm trên cài đặt phương pháp sắp xếp nào?

Đổi chỗ trực tiếp (Interchange Sort)

Cho tập tin F0: 1, 3, 5, 2, 5, 10, 9 Áp dụng giải thuật trộn tự nhiên, số bước lặp

là:

2

Cho tập tin F0: 1, 3, 5, 2, 5, 10, 9 Để sắp xếp F0 sử dụng phương pháp trộn tự

nhiên cần có bao nhiêu tập tin trung gian?

2

Cho tập tin F0: 1, 5, 0, 4, 7, 6 Áp dụng giải thuật sắp xếp trộn Tự nhiên, kết

thúc bước lặp đầu tiên nội dung tập tin F0 là

0, 1, 4, 5, 6, 7

Cho tập tin F0: 5, 7, 2, 4, 8, 12, 4, 14, 23, 19, 20, 8 Áp dụng giải thuật sắp xếp

trộn trực tiếp (trộn Run), kết thúc bước lặp thứ ba nội dung tập tin F0 là

 2, 4, 4, 5, 7, 8, 8, 12, 14, 19, 20, 23

Cho trước các khai báo:

typedef struct Nhanvien

{

char maso[8];

char hoten[30];

char chucvu[20];

int bacluong;

}Nhanvien;

typedef struct Node

{

Nhanvien Info;

Node* pNext;

}Node;

typedef struct List

{

Node* pHead;

Node* pTail;

}List;

Cấu trúc Node đóng vai trò gì trong danh sách liên kết đơn?

Phần tử

Trang 5

Duyệt cây theo thứ tự sau (LRN) ta được kết quả

Cho trước cây nhị phân tìm kiếm:

Duyệt cây theo thứ tự trước (NLR) ta được kết quả

8 3 2 5 4 20 11 9 18 30

Cho trước đoạn chương trình:

void ProList(List &l, Node* p)

{

if (l.pHead==NULL)

{

l.pHead = p;

l.pTail = l.pHead;

}

else

{

l.pTail-> pNext = p;

p->pPrev = l.pTail;

l.pTail = p;

}

}

Hàm ProList cài đặt thao tác nào trong danh sách liên kết kép?

Thêm phần tử vào cuối danh sách

Cho trước đoạn chương trình:

Data ProNode(List &l, Node* q)

{   

Node *p;

if (q != NULL)

{

 p = q->pNext;

 if ( p != NULL)

 {

 q->pNext = p->pNext;

 if(p == l.pTail)

 l.pTail = q;

 else

 p->pNext->pPrev = q;

 delete p;

 }

}

return x;

}

Xóa phần tử ở sau phần tử q

Trang 6

Hàm ProNode cài đặt thao tác nào trong danh sách liên kết kép?

Cho trước đoạn chương trình:

void ProList(List &l, Node* p)

{

if (l.pHead==NULL)

{

l.pHead = p;

l.pTail = l.pHead;

}

else

{

p->pNext = l.pHead;

l.pHead->pPrev = p;

l.pHead = p;

}

}

Hàm ProList cài đặt thao tác nào trong danh sách liên kết kép?

Thêm phần tử vào đầu danh sách

Cho trước đoạn chương trình:

typedef struct Node

{

int  Info;

Node* pNext;

}Node;

typedef struct List

{

Node* pHead;

Node* pTail;

}List;

void ProSort(List &l)

{   

Node *p, *q;

p = l.pHead;

while(p!=NULL)

 {

 q = p->pNext;

 while(q!=NULL)

 {

 if (p->Info > q->Info)

     Swap(p->Info,q->Info);

 q = q->pNext;

 }

 p = p->pNext;

 }

}

Hàm ProSort sắp xếp trên danh sách liên kết đơn dựa trên giải thuật sắp xếp:

Đổi chỗ trực tiếp (Interchange Sort)

Cho trước đoạn chương trình:

typedef struct Node

{

int  Info;

Node* pNext;

Chọn trực tiếp (Selection Sort)

Trang 7

typedef struct List

{

Node* pHead;

Node* pTail;

}List;

void ProSort(List &l)

{   

Node *p, *q, *pmin;

p = l.pHead;

while(p!=NULL)

{

 pmin = p;

 q = p->pNext;

 while(q!=NULL)

 {

 if (pmin->Info > q->Info)

     pmin = q;

 q = q->pNext;

 }

 if (pmin != p)

 Swap(pmin->Info, p->Info);

 p = p->pNext;

}

}

Hàm ProSort sắp xếp trên danh sách liên kết đơn dựa trên giải thuật sắp xếp:

Cho trước đoạn chương trình:

typedef struct Node

{

int Info;

Node* pNext;

}Node;

typedef struct List

{

Node* pHead;

Node* pTail;

}List;

void ProList(List &l)

{

Node *p;

p = l.pHead;

while(p!=NULL)

{

if (p->Info>=0)

print(“%d”,p->Info);

p = p->pNext;

}

}

Hỏi hàm ProList thực hiện công việc gì trong danh sách liên kết đơn?

In trường Info của các phần tử có giá trị không âm ra màn hình

Trang 8

Data ProNode(List &l)

{

Node *p;

Data x;

if ( l.pHead != NULL)

{

p = l.pHead;

x = p->data;

l.pHead=l.pHead->pNext;

l.pHead->pPrev = NULL;

delete p;

if(l.pHead == NULL)

l.pTail = NULL;

}

return x;

}

Hàm ProNode cài đặt thao tác nào trong danh sách liên kết kép?

Cho trước đoạn chương trình:

void ProList(List &l, Node* p)

{

if (l.pHead==NULL)

{

l.pHead = p;

l.pTail = l.pHead;

}

else

{

p->pNext = l.pHead;

l.pHead->pPrev = p;

l.pHead = p;

}

}

Hàm ProList cài đặt thao tác nào trong danh sách liên kết kép?

Thêm phần tử vào đầu danh sách

Cho trước đoạn chương trình:

Data ProNode(List &l, Node* q)

{

Node *p;

if (q != NULL)

{

p = q->pNext;

if ( p != NULL)

{

q->pNext = p->pNext;

if(p == l.pTail)

l.pTail = q;

else

p->pNext->pPrev = q;

delete p;

}

}

Xóa phần tử ở sau phần tử q

Trang 9

return x;

}

Hàm ProNode cài đặt thao tác nào trong danh sách liên kết kép?

Cho trước hàm searchNode(TREE T, Data X):

TNODE* searchNode(TREE T, Data X)

{

if(T!=NULL)

{

if(T->Key == X)

     return T;

if(T->Key > X) return searchNode(T->pLeft, X);

else return searchNode(T->pRight, X);

}

return NULL;

}

Và cây nhị phân tìm kiếm:

Hỏi hàm searchNode(TREE T, Data X) khi tìm kiếm khóa 8 trên cây đã cho thì

hàm searchNode gọi đệ qui bao nhiêu lần?

0

Đặc điểm cơ bản của phương pháp trộn tự nhiên là: Tận dụng được độ dài ban đầu của

tập tin cần sắp xếp

Dạng hàm thể hiện độ phức tạp phải cài đặt lại giải thuật: n3

Data ProList(List &l)

{

Node *p;

Data x;

if ( l.pHead != NULL)

{

p = l.pHead;

x = p->Info;

l.pHead = l.pHead->pNext;

     delete p;

if(l.pHead == NULL)

     l.pTail = NULL;

}

return x;

}

Hàm ProList cài đặt thao tác nào trong danh sách liên kết đơn?

Xóa phần tử ở đầu danh sách

Data ProList(List &l)

{

Node *p;

Data x;

if ( l.pHead != NULL)

{

Xóa phần tử ở đầu danh sách

Trang 10

p = l.pHead;

x = p->Info;

l.pHead = l.pHead->pNext;

delete p;

if(l.pHead == NULL)

l.pTail = NULL;

}

return x;

}

Hàm ProList cài đặt thao tác nào trong danh sách liên kết đơn?

Dãy các khóa nào sau đây được gọi là Run (đường chạy) -3, -2, -1, 0

Độ phức tạp của giải thuật sắp xếp đổi chỗ trực tiếp (Interchange Sort) T(n) = O(n2)

Độ phức tạp của giải thuật sắp xếp nổi bọt (Bubble Sort) T(n) = O(n2)

Độ phức tạp của hàm:

int tsle(int a[][],int n)

{

int i,j,tong=0;

for(i=0;i<n;i++)

 for(j=0;j<n;j++)

        if (a[i][j]%2==0)

     tong=tong+a[i][j];

return tong;

}

T(n) = O(n2)

Đối với B Cây bậc 5 thì số khóa trên mỗi nút (ngoại trừ nút gốc) tối thiểu là: 2

Đối với B Cây bậc 7 khi thêm một khóa mới vào nút thì xảy ra hiện tượng tách

nút nếu số khóa của nút đó trước khi thêm là:

 6

Đối với B Cây bậc 7 khi thêm một khóa mới vào nút thì xảy ra hiện tượng tách

nút nếu số khóa của nút đó trước khi thêm là:

6 Đối với phương pháp kp, hàm băm lại lần thứ i là  h(k, i)=(h1(k)+i*h2(k))mod M Giả sử số phần tử của tập tin F0 ban đầu là 10, với phương pháp trộn Run thì

mỗi bước lặp sẽ có bao nhiêu thao tác sao chép (copy)? 20

Giả sử ta cần lưu trữ dãy các phần tử có khóa từ 0 đến 2020 vào bảng băm sử

dụng phương pháp băm nối kết trực tiếp, số bucket là 10 Hàm băm nào sau đây

là hợp lý nhất:

h(k)=k3 mod 10

Giả sử ta cần thêm các khóa: 4, 6, 2, 9, 5 vào B Cây bậc 3 rỗng, số lần tách nút

Giả sử ta có bảng băm kích thước 10 với phương pháp băm dò tuyến tính, hàm

băm h(k)= k mod 10 Khi chèn liên tiếp 6 phần tử vào bảng băm ta được kết

quả bên dưới:

0 1

8

46, 34, 42, 23, 52, 33

Trang 11

9 Hãy cho biết thứ tự chèn các phần tử vào bảng băm nào sau đây là hợp lý?

Giả sử ta có bảng băm sử dụng phương pháp nối kết trực tiếp chứa n phần tử

Độ phức tạp của giải thuật tìm kiếm trong trường hợp xấu nhất là: O(n)

Giả sử ta có bảng băm sử dụng phương pháp nối kết trực tiếp chứa n phần tử Độ

phức tạp của giải thuật tìm kiếm trong trường hợp xấu nhất là:

O(n)

Giải thuật sắp xếp sau đây:

-Bước 1: i = 2;

-Bước 2: x = a[i]; Tìm vị trí pos thích hợp trong đoạn a[1] đến a[i-1] để chèn

a[i] vào

-Bước 3: Dời chỗ các phần tử từ a[pos] đến a[i-1] sang phải 1 vị trí để dành

chổ cho a[i]

-Bước 4: a[pos] = x;

-Bước 5: i = i+1;

là phương pháp sắp xếp nào?

Chèn trực tiếp (Insertion Sort))

Giải thuật sắp xếp sau đây:

-Bước 1 : i = 1;

-Bước 2 : j = i+1;

-Bước 3 :

Trong khi j <= N thực hiện

Nếu a[j]<a[i]: a[i]↔a[j];

j = j+1;

-Bước 4 :

i = i+1;

Nếu i < n: Lặp lại Bước 2 Ngược lại: Dừng

là phương pháp sắp xếp nào?

Đổi chỗ trực tiếp (Interchange Sort)

Hàm fgetc() trả về kết quả EOF khi nào? Khi đọc đến cuối tập tin hoặc

không thể đọc được ký tự Hàm nào sau đây được sử dụng để đóng tất cả các tập tin đang mở?  Hàm fcloseall

Hàm Output được cài đặt:

void Output(TREE Root)

{

if (Root != NULL)

{

     printf(“%d ”,Root->Key);

     Output(Root->pRight);

     Output(Root->pLeft);

    

}

}

Và cây nhị phân:

2

Trang 12

Khi thực hiện hàm Output trên cây đã cho thì khóa nào được in ra màn hình sau cùng?

Hàm Output được cài đặt:

void Output(TREE Root)

{

if (Root != NULL)

{

printf(“%d ”,Root->Key);

Output(Root->pRight);

Output(Root->pLeft);

}

}

Và cây nhị phân:

Khi thực hiện hàm Output trên cây đã cho thì khóa nào được in ra màn hình sau cùng?

2

Hàm searchNode(TREE T, Data X) cho trước như sau:

TNODE* searchNode(TREE T, Data X)

{

if(T!=NULL)

{

if(T->Key == X)

     return T;

if(T->Key > X) return searchNode(T->pLeft, X);

else return searchNode(T->pRight, X);

}

return NULL;

}

Và cây nhị phân tìm kiếm:

Hỏi hàm searchNode(TREE T, Data X) khi tìm kiếm khóa 19 trên cây đã cho thì hàm searchNode gọi đệ qui bao nhiêu lần?

4

Hàm searchNode(TREE T, Data X) cho trước như sau:

TNODE* searchNode(TREE T, Data X)

{

if(T!=NULL)

{

if(T->Key == X)

return T;

if(T->Key > X) return searchNode(T->pLeft, X);

else return searchNode(T->pRight, X);

}

return NULL;

}

Và cây nhị phân tìm kiếm:

4

Trang 13

Hỏi hàm searchNode(TREE T, Data X) khi tìm kiếm khóa 19 trên cây đã cho thì

hàm searchNode gọi đệ qui bao nhiêu lần?

Hàm searchNode(TREE T, Data X) được cài đặt như sau:

TNODE* searchNode(TREE T, Data X)

{

if(T!=NULL)

{

if(T->Key == X)

return T;

if(T->Key > X) return searchNode(T->pLeft, X);

else return searchNode(T->pRight, X);

}

return NULL;

}

Và cây nhị phân tìm kiếm:

Hỏi hàm searchNode(TREE T, Data X) khi tìm kiếm khóa 18 trên cây đã cho thì

hàm searchNode gọi đệ qui bao nhiêu lần?

3

Hãy cho biết chiều cao của cây kết quả sau khi chèn liên tiếp các khóa: 4, 7, 9,

10, 13, 15, 16 vào B Cây bậc 3 rỗng?

2

Hãy cho biết chiều cao của cây kết quả sau khi chèn liên tiếp các khóa: 4, 7, 9,

10, 13, 15, 16 vào B Cây bậc 3 rỗng?

2

Hãy cho biết nút gốc của cây kết quả sau khi chèn liên tiếp các khóa: 4, 8, 3, 9,

15, 18 vào B Cây bậc 3 rỗng?

4, 9

int ProKey(TREE T)

{

TREE p=T;

while(p->pRight!=NULL)

     p=p->pRight;

return p->Key;

}

Thực hiện hàm ProKey trên cây nhị phân sau:

thì hàm ProKey trả về giá trị:

30

int ProTree(TREE T)

{

if(T==NULL)

return 0;

else

return ProTree(T->pLeft) +ProTree(T->pRight);

}

Thực hiện hàm ProTree trên cây nhị phân sau:

thì hàm ProTree trả về giá trị:

10

Kết quả trên màn hình sau khi thực thi đoạn mã lệnh sau là gì? ABCDE

Ngày đăng: 21/11/2024, 23:58

HÌNH ẢNH LIÊN QUAN

Bảng băm sử dụng phương pháp băm kép sử dụng bao nhiêu hàm băm? 2 - trắc nghiệm môn Cấu trúc dữ liệu và giải thuật đại học trà vinh
Bảng b ăm sử dụng phương pháp băm kép sử dụng bao nhiêu hàm băm? 2 (Trang 1)
w