Thực hiện hàng đợi bằng mảng: khai báo kiểu hàng đợi bằng một ngôn ngữ lập trình cụ thể: Pascal, C, Java, thời gian thực hiện các phép toán.. Chương 5: Danh sách móc nối 1- Mô tả cấu trú
Trang 1Câu hỏi ôn tập Cấu trúc dữ liệu và thuật giải
Chương 1: Các khái niệm mở đầu
1- Từ dữ liệu thực tế đến dữ liệu trong chương trình máy tính cần phải tượng hóa như thế nào;
2- Định nghĩa mô hình dữ liệu, kiểu dữ liệu trừu tượng, cấu trúc dữ liệu; phân biệt sự khác nhau; Ví dụ
3- So sánh hiệu quả của thuật giải như thế nào, tại sao cần tính hiệu quả, ví dụ
4- Định nghĩa kí hiệu O lớn, ý nghiã, ví dụ
5- Thế nào là phép toán sơ cấp Cách xác định thời gian thực hiện thuật giải bằng tổng số phép toán sơ cấp Cho ví dụ
6- Định nghĩa chi phí thời gian tối đa, tối thiểu, trung bình; Ví dụ
Chương 2: Sắp xếp - các thuật giải cơ sở
1- Mô tả các thủ tục sắp xếp nổi bọt, chèn trực tiếp, chọn trực tiếp; Phân tích ước lượng chi phí thời gian thực hiện của mỗi thủ tục
2- Mô tả thủ tục sắp xếp hoà nhập hai đường; Phân tích ước lượng chi phí thời gian thực hiện
3- Mô tả thủ tục sắp xếp nhanh, ví dụ minh hoạ Phân tích ước lượng chi phí thời gian thực hiện
Chương 3: Mô hình danh sách
1- Mô hình danh sách là gì, đặc tả các phép toán cơ bản của một danh sách
2- Cửa sổ truy cập các thành phần là gì, phân biệt của
sổ truy cập hiển và cửa sổ truy cập ẩn Ưu nhược điểm của chúng
3- Cấu trúc danh sách mảng; ưu nhược điểm của danh sách mảng
4- Tìm kiếm trong danh sách, so sánh tìm kiếm tuần
tự và tìm kiếm nhị phân
Trang 2Chương 4: Kiểu ngăn xếp và kiểu hàng đợi.
1- Định nghĩa kiểu ngăn xếp, các phép toán Thực hiện ngăn xếp bằng mảng: khai báo kiểu ngăn xếp (bằng một ngôn ngữ lập trình cụ thể: Pascal, C, Java) Thời gian thực hiện các phép toán ngăn xếp 2- Định nghĩa kiểu hàng đợi, các phép toán Thực hiện hàng đợi bằng mảng: khai báo kiểu hàng đợi (bằng một ngôn ngữ lập trình cụ thể: Pascal, C, Java), thời gian thực hiện các phép toán
3- Định nghĩa cách viết biểu thức trung tố, tiền tố, hậu tố, cho ví dụ Nêu ưu điểm của cách viết hậu
tố Thủ tục tính gía trị biêu thức hậu tố Ví dụ minh hoạ
4- Tại sao phải dùng ngăn xếp trong tổ chức thực hiện chương trình con, thủ tục đệ quy Cách khử đệ quy dùng ngăn xếp, ví dụ minh hoạ
Chương 5: Danh sách móc nối
1- Mô tả cấu trúc danh sách móc nối đơn, khai báo kiểu danh sách móc nối đơn (bằng một ngôn ngữ lập trình cụ thể: Pascal, C); Mô tả việc thực hiện các phép toán, minh hoạ bằng hình vẽ, thời gian thực hiện các phép toán
2- Phân tích so sánh việc thực hiện danh sách nối đơn
có dùng và không dùng các nút đánh dấu
Beforefirst, Afterlast
3- Nhược điểm của danh sách móc nối đơn, các cách khắc phục
4- Mô tả cấu trúc danh sách nối vòng, danh sách nối vòng chỉ thêm bớt tại một chỗ, danh sách nối kép
Mô tả việc thực hiện các phép toán, minh hoạ bằng hình vẽ
5- Xây dựng ngăn xếp và hàng đợi bằng cấu trúc móc nối Khai báo (bằng một ngôn ngữ lập trình cụ thể: Pascal, C) Mô tả việc thực hiện các phép toán, minh hoạ bằng hình vẽ
Chương 6: Mô hình cây
Trang 31- Định nghĩa các khái niệm cơ bản trong mô hình cây, ví dụ minh hoạ Đặc tả các phép toán trong
mô hình cây
2- Định nghĩa cây nhị phân, cây hoàn chỉnh, cây đầy
đủ (trái), liên hệ giữa chiều cao của cây nhị phân
và kích thước (số nút) của cây
3- Cây nhị phân dùng cấu trúc mảng, khai báo kiểu (bằng một ngôn ngữ lập trình cụ thể: Pascal, C, Java); ví dụ minh hoạ, thời gian thực hiện các phép toán; ưu nhược điểm
4- Cây nhị phân dùng danh sách nút khai báo kiểu (bằng một ngôn ngữ lập trình cụ thể: Pascal, C, Java); thời gian thực hiện các phép toán; ưu nhược điểm
5- Cây nhị phân dùng cấu trúc móc nối, khai báo kiểu (bằng một ngôn ngữ lập trình cụ thể: Pascal, C); thời gian thực hiện các phép toán
6- Trình bày ba phép duyệt cây nhị phân, viết các thủ tục đệ quy Phân tích cách khử đệ quy để chuyển thành thủ tục lặp
7- Các cách khác nhau để biểu diễn cây nhiều nhánh; biểu diễn qua cây nhị phân tương đương ví dụ minh hoạ
8- Cây nhị phân biểu diễn biểu thức, thủ tục tính giá trị biểu thức;
9- Mô tả cấu trúc Trie, ví dụ minh hoạ, phân tích ứng dụng của Trie
10- Định nghĩa Heap, ý nghĩa, ví dụ minh hoạ Mô tả
các thủ tục upheap, downheap, makeheap; ước
lượng thời gian thực hiện của mỗi thủ tục So sánh việc thực hiện hàng đợi ưu tiên bằng danh sách có thứ tự và bằng heap
11- Trình bày thủ tục sắp xếp vun đống, ví dụ minh hoạ; Phân tich ước lượng thời gian thực hiện
Chương 7: Cây tìm kiếm nhị phân
1- Định nghĩa cây tìm kiếm nhị phân, ví dụ minh hoạ;
mô tả việc thực hiện các phép toán tìm kiếm, thêm
Trang 4khoá vào cây Tạo cây tìm kiếm bằng cách thêm dần từng khoá
2- Phân tích phép gỡ bỏ một khoá khỏi cây tìm kiếm, minh hoạ bằng hình vẽ, cho ví dụ cụ thể
3- Phân tích ước lượng thời gian thực hiện của các phép toán trên cây tìm kiếm
4- Định nghĩa cây cân đối AVL, ý nghĩa, ví dụ minh hoạ Mô tả phép quay đơn, phép quay kép bằng hình vẽ; Trình bày thủ tục cân bằng lại sau phép thêm khoá; Ví dụ minh họa
5- Định nghĩa cây đỏ đen, ý nghĩa, ví dụ Trình bày thủ tục cân bằng lại sau phép thêm khoá vào cây
đỏ đen
6- Định nghĩa cây tìm kiếm ngoài, ví dụ
Chương 8: Tập hợp, bảng, tự điển.
1- Định nghĩa kiểu tập hợp và các phép toán; Phân biệt kiểu bảng và kiểu tự điển Các cách biểu diễn tập hợp và thời gian thực hiện các phép toán
2- Định nghĩa bảng băm, địa chỉ băm, vấn đề xung đột địa chỉ, ví dụ minh hoạ, các cách giải quyết 3- Định nghĩa bảng băm mở, trình bày các phép toán của bảng băm mở; phân tích ước lượng thời gian thực hiện
4- Định nghĩa bảng băm đóng, trình bày các phép toán trong bảng đóng, các phép băm lại tuyến tính, băm lại bình phương
5- Phân tích việc thực hiện tự điển bằng cây tìm kiếm, khái niệm cây tìm kiêm tối ưu
Chương 9: Phân hoạch
1- Định nghĩa phân hoạch, các phép toán cơ sở; trình bày thực hiện phân hoạch bằng cây nối về nút cha, khai báo phân hoạch (bằng một ngôn ngữ lập trình
cụ thể: Pascal, C, Java)
2- phân tích thời gian thực hiện các phép toán phân hoạch; Các thủ tục cải tiến
Chương 10: Đồ thị.
Trang 51- Định nghĩa các khái niệm cơ bản, biểu diễn đồ thị bằng ma trận kề, danh sách kề, ví dụ minh hoạ Khai báo đồ thị (bằng một ngôn ngữ lập trình cụ thể: Pascal, C, Java)
2- Phép duyệt đồ thị theo chiều rộng và theo chiều sâu Phân tích việc triển khai thủ tục chi tiết, ví dụ minh hoạ diễn biến qua từng bước
3- Thủ tục Prim, thủ tục Kruskal để tìm cây bao trùm ngắn nhất Phân tích việc triển khai thủ tục chi tiết
Ví dụ minh hoạ diễn biến qua từng bước
4- Trình bày thủ tục Dijkstra tìm đường đi ngắn nhất; Phân tích việc triển khai thủ tục chi tiết; Ví dụ minh hoạ diễn biến qua từng bước