
Cấu trúc dữ liệu cơ bản
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Cấu trúc dữ liệu cơ bản Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. LỜI NÓI ĐẦU “Alorithms + Data Structures = Programs” N. Wirth “Computing is an art form. Some programs are elegant, some are exquisite, some are sparkling. My claim is it is possible to write grand programs, noble programs, truly magnifient programs” D.E.Knuth Cuốn sách này trình bày các vấn đề cơ bản, quan trọng nhất của Cấutrúc dữ liệu (CTDL) và thuật toán đã được đề xuất trong IEEE/ACMcomputing curricula, theo quan điểm hiện đại. Khi thiết kế thuật toán để giải quyết một vấn đề, chúng ta cần phải sửdụng các đối tượng dữ liệu và các phép toán trên các đối tượng dữ liệu ởmức độ trừu tượng. Một trong các nội dung chính của sách này là nghiêncứu các kiểu dữ liệu trừu tượng (KDLTT) và các CTDL để cài đặt cácKDLTT. KDLTT quan trọng nhất là tập động (một tập đối tượng dữ liệu vớicác phép toán tìm kiếm, xen, loại, …), KDLTT này được sử dụng rộng rãinhất trong các chương trình ứng dụng. Các KDLTT cơ bản khác sẽ đượcnghiên cứu là : danh sách, ngăn xếp, hàng đợi, hàng ưu tiên, từ điển, … 1 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Chúng ta sẽ cài đặt các KDLTT bởi các lớp C + +. Sự cài đặt cácKDLTT bởi các lớp C + + cho phép ta có thể biểu diễn các đối tượng dữ liệuvà các phép toán trên các đối tượng dữ liệu trong các chương trình ứng dụngmột cách toán học, ngắn gọn và dễ hiểu, tương tự như khi ta sử dụng các sốnguyên, số thực trong chương trình. Một ưu điểm quan trọng khác là, nó chophép khi thiết kế và cài đặt phần mềm, chúng ta có thể làm việc ở mức độquan niệm cao, có thể thực hành được các nguyên lý lập trình. Với mỗi KDLTT, chúng ta sẽ nghiên cứu các cách cài đặt bởi cácCTDL khác nhau. Hiệu quả của các phép toán trong mỗi cách cài đặt sẽđược đánh giá. Sự đánh giá so sánh các cách cài đặt sẽ giúp cho người sửdụng có sự lựa chọn thích hợp cho từng chương trình ứng dụng. Thông quasự cài đặt các lớp C + + cho mỗi KDLTT và các chương trình ứng dụngchúng, độc giả sẽ được cung cấp thêm nhiều kỹ thuật lập trình hữu ích. Sự nghiên cứu mỗi KDLTT sẽ được tiến hành qua các bước sau đây. Đặc tả KDLTT. Chúng ta sẽ mô tả các đối tượng dữ liệu bằng cách sử dụng các ký hiệu, các khái niệm toán học và logic. Các phép toán trên các đối tượng dữ liệu sẽ được mô tả bởi các hàm toán học. Lựa chọn CTDL thích hợp để cài đặt đối tượng dữ liệu Thiết kế và cài đặt lớp C + +. Phân tích hiệu quả của các phép toán. Các ví dụ ứng dụng.Tổ chức sách Nội dung của cuốn sách được tổ chức thành ba phần. Phần 1 sẽ nghiêncứu các CTDL cơ bản được sử dụng để cài đặt các KDLTT, đó là danh sáchliên kết (DSLK), cây tìm kiếm nhị phân (TKNP), cây thứ tự bộ phận (heap),bảng băm. Danh sách, ngăn xếp, hàng đợi sẽ được cài đặt bởi mảng hoặc bởiDSLK. Cây TKNP được sử dụng để cài đặt tập động. Hàng ưu tiên được càiđặt hiệu quả bởi heap. Bảng băm là CTDL rất thích hợp để cài đặt từ điển. 2 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Trong phần 2 chúng ta sẽ nghiên cứu các CTDL cao cấp. Các CTDLnày có đặc điểm chung là sự tổ chức dữ liệu và các phép toán trên các CTDLnày là khá phức tạp, song bù lại thời gian thực hiện các phép toán lại hiệuquả hơn. Chúng ta sẽ nghiên cứu các loại cây tìm kiếm cân bằng, các CTDLtự điều chỉnh, các CTDL đa chiều, … Đặc biệt, chúng ta sẽ đưa vào kỹ thuậtphân tích trả góp, đây là kỹ thuật phân tích hoàn toàn mới, được sử dụng đểđánh giá thời gian chạy của một dãy phép toán trên các CTDL tự điều chỉnh. Phần 3 dành để nói về thuật toán. Chúng ta sẽ trình bày phương phápđánh giá thời gian chạy của thuật toán bằng ký hiệu ô lớn, và các kỹ thuật đểphân tích, đánh giá thời gian chạy của thuật toán. Một nội dung quan trọngcủa phần này là nghiên cứu các chiến lược thiết kế thuật toán. Chúng ta sẽtrình bày các chiến lược thiết kế thuật toán hay được sử dụng là : chia - để -trị, quy hoạch động, quay lui, … Các thuật toán sắp xếp, các thuật toán đồthị cũng sẽ được nghiên cứu. Cuối cùng chúng ta trình bày một vấn đề cótính chất lý thuyết, đ ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Cấu trúc dữ liệu và thuật toán Cấu trúc dữ liệu bộ nhớ ngoài Chiến lược thiết kế thuật toán Phân tích thuật toán Kiểu dữ liệu Thuật toán trên đồ thịTài liệu có liên quan:
-
Giáo trình Cấu trúc dữ liệu và thuật toán trên C++
74 trang 398 0 0 -
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 357 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 241 0 0 -
Bài giảng chuyên đề Phân tích và thiết kế thuật toán: Chia để trị
27 trang 239 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 186 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 175 0 0 -
Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 7 - Nguyễn Khánh Phương
214 trang 167 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 148 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 145 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 143 0 0 -
Tiểu luận ngành Khoa học máy tính: Thiết kế và phân tích thuật toán
36 trang 131 0 0 -
Nghiên cứu thuật toán lý thuyết: Phần 1
47 trang 125 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 1 - Trần Hạnh Nhi
98 trang 122 0 0 -
Bài giảng Phân tích thiết kế thuật toán: Chương 3 - Nguyễn Văn Linh
87 trang 115 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 109 0 0 -
Ứng dụng và cài đặt cấu trúc dữ liệu bằng C: Phần 1
338 trang 103 0 0 -
49 trang 87 0 0
-
Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 3 - Một số mô hình thuật toán
42 trang 81 0 0 -
Bài giảng Cơ sở dữ liệu: Chương 3 - ThS. Hoàng Mạnh Hà
67 trang 74 0 0 -
54 trang 73 0 0