Giáo trình cấu trúc dữ liệu và lời giải – Đinh bạo dạn Tường
LỜI NÓI ĐẦU
Cuốn sách này trình diễn các vấn đề cơ bản, đặc biệt nhất của kết cấu dữ liệu (CTDL) và thuật toán đã được khuyến nghị trong IEEE/ACM computing curricula, theo cách nhìn hiện đại.
Bạn đang xem: Tài liệu cấu trúc dữ liệu và giải thuật
Khi xây đắp thuật toán để xử lý một vấn đề, chúng ta cần phải sử dụng các đối tượng người sử dụng dữ liệu và những phép toán bên trên các đối tượng dữ liệu ở tại mức độ trừu tượng. Một trong những nội dung chính của sách này là nghiên cứu và phân tích các kiểu dữ liệu trừu tượng (KDLTT) và các CTDL để thiết lập các KDLTT. KDLTT quan trọng đặc biệt nhất là tập đụng (một tập đối tượng dữ liệu với các phép toán search kiếm, xen, loại, …), KDLTT này được sử dụng rộng thoải mái nhất trong số chương trình ứng dụng. Những KDLTT cơ phiên bản khác vẫn được nghiên cứu là : danh sách, chống xếp, sản phẩm đợi, mặt hàng ưu tiên, từ điển, …
Giáo trình cấu trúc dữ liệu và giải thuật – Đinh to gan lớn mật Tường
Phần 1. Các cấu tạo dữ liệu cơ bản 12
Chương 1. Sự trừu tượng hoá tài liệu 13
1.1. Trình diễn dữ liệu trong số ngôn ngữ xây dựng 131.2. Sự trừu tượng hoá tài liệu 171.3. Kiểu tài liệu trừu tượng 211.3.1. Đặc tả kiểu tài liệu trừu tượng 211.3.2. Cài đặt kiểu dữ liệu trừu tượng 23
1.4. Cài đặt kiểu dữ liệu trừu tượng vào C 261.5. Triết lý thiết đặt 30Chương 2. Kiểu tài liệu trừu tượng và các lớp C ++ 34
2.1. Lớp và các thành phần của lớp 342.2. Các hàm nguyên tố 362.2.1. Hàm kiến tạo và hàm huỷ 362.2.2. Các tham đổi mới của hàm 382.2.3. Định nghĩa lại những phép toán 41
2.3. Trở nên tân tiến lớp thiết lập kiểu dữ liệu trừu tượng 452.4. Lớp khuôn 552.4.1. Lớp côngtơnơ 552.4.2. Hàm khuôn 652.4.3. Lớp khuôn 67
2.5. Các kiểu tài liệu trừu tượng quan trọng 74Chương 3. Sự vượt kế 77
3.1. Các lớp dẫn xuất 773.2. Hàm ảo và tính nhiều hình 843.3. Lớp các đại lý trừu tượng 88Chương 4. Danh sách
4.1. Kiểu tài liệu trừu tượng danh sách 984.2. Thiết đặt danh sách vì mảng 1014.3. Cài đặt danh sách vày mảng rượu cồn 1094.4. Setup tập động vì chưng danh sách. Tìm kiếm tuần tự và tìm tìm nhị phân 1174.4.1. Cài đặt bởi list không được sắp. Kiếm tìm kiếm tuần trường đoản cú 1174.4.2. Setup bởi list được sắp. Tìm kiếm kiếm nhị phân 120
4.5. Ứng dụng 126Chương 5. Danh sách link 137
5.1. Nhỏ trỏ và cấp phép động bộ nhớ 1375.2. Cấu trúc dữ liệu danh sách liên kết 1415.3. Những dạng danh sách link khác 1485.3.1. Danh sách links vòng tròn 1485.3.2. Danh sách liên kết có đầu trả 1505.3.3. Danh sách liên kết kép 151
5.4. Cài đặt danh sách vày danh sách links 1545.5. đối chiếu hai cách thức cài đặt list 1625.6. Setup tập động do danh sách link 164Chương 6. Ngăn xếp 168
6.1. Kiểu dữ liệu trừu tượng chống xếp 1686.2. Thiết lập ngăn xếp vị mảng 1696.3. Thiết đặt ngăn xếp bởi vì danh sách liên kết 1726.4. Biểu thức vết ngoặc tương xứng 1766.5. Đánh giá chỉ biểu thức số học 1786.5.1. Đánh giá bán biểu thức postfix 1786.5.2. đưa biểu thức infix thành postfix 1806.6. Phòng xếp với đệ quy 183
Chương 7. Hàng chờ 187
7.1. Kiểu tài liệu trừu tượng hàng hóng 1877.2. Thiết lập hàng đợi vì mảng 1887.3. Thiết đặt hàng đợi bởi danh sách liên kết 1947.4. Mô rộp hệ sắp đến hàng 298Chương 8. Cây 203
8.1. Các khái niệm cơ bản 2048.2. Chú tâm cây 2098.3. Cây nhị phân 2138.4. Cây kiếm tìm kiếm nhị phân 2208.4.1. Cây tìm kiếm nhị phân 2208.4.2. Các phép toán tập hễ trên cây kiếm tìm kiếm nhị phân 223
8.5. Thiết đặt tập động bởi cây kiếm tìm kiếm nhị phân 2318.6. Thời gian thực hiện các phép toán tập cồn trên cây kiếm tìm kiếm nhị phân 237Chương 9. Bảng băm 242
9.1. Cách thức băm 2429.2. Những hàm băm 2459.2.1. Cách thức chia 2459.2.2. Cách thức nhân 2469.2.3. Hàm băm cho các giá trị khoá là xâu ký tự 246
9.3. Các cách thức giải quyết va va 2489.3.1. Cách thức định showroom mở 2489.3.2. Cách thức tạo dây chuyền sản xuất 253
9.4. Thiết đặt bảng băm showroom mở 2549.5. Thiết lập bảng băm dây chuyền sản xuất 2609.6. Tác dụng của cách thức băm 265Chương 10. Mặt hàng ưu tiên 269
10.1. Kiểu dữ liệu trừu tượng mặt hàng ưu tiên 26910.2. Các cách thức đơn giản cài đặt hàng ưu tiên 27010.2.1. Thiết đặt hàng ưu tiên bởi danh sách 27010.2.2. Cài đặt hàng ưu tiên bởi cây kiếm tìm kiếm nhị phân 271
10.3. Cây trang bị tự phần tử 27210.3.1.Các phép toán sản phẩm ưu tiên bên trên cây máy tự bộ phận 27310.3.2. Xây đắp cây thứ tự phần tử 278
10.4. Cài đặt hàng ưu tiên vì cây máy tự phần tử 28210.5. Nén tài liệu và mã Huffman 287Phần 2. Các cấu tạo dữ liệu cao cấp 296
Chương 11. Các cây tìm kiếm cân bằng 297
11.1. Những phép xoay 29711.2. Cây AVL 29811.2.1.Các phép toán tập rượu cồn trên cây AVL 30111.2.2.Cài để tập động vì cây AVL 309
11.3. Cây đỏ – black 31511.4. Cấu trúc dữ liệu tự điều chỉnh 32711.5. Phân tích mua trả góp 32811.6. Cây tán loe 33011.6.1.Các phép toán tập cồn trên cây tán loe 33611.6.2.Phân tích mua trả góp 338
Chương 12. Mặt hàng ưu tiên cùng với phép toán hợp độc nhất vô nhị 341
12.1. Mặt hàng ưu tiên với phép toán hợp độc nhất 34112.2. Những phép toán hợp nhất và sút khoá trên cây trang bị tự thành phần 34212.3. Cây nghiêng 34212.3.1.Các phép toán mặt hàng ưu tiên trên cây nghiêng 34312.3.2.Phân tích trả dần 348
Chương 13. Họ những tập không giảm nhau 352
13.1. Kiểu dữ liệu trừu tượng họ các tập không cắt nhau 35213.2. Setup đơn giản 35313.3. Setup bởi cây 35413.3.1.Phép hòa hợp theo trọng số 35713.3.2.Phép search với nén mặt đường 360
13.4. Ứng dụng 36213.4.1.Vấn đề tương tự 36313.4.2.Tạo ra mê lộ 364
Chương 14. Các kết cấu dữ liệu đa chiều 367
14.1. Các phép toán trên các dữ liệu nhiều chiều 36714.2. Cây k – chiều 36814.2.1.Cây 2 – chiều 36914.2.2.Cây k – chiều 377
14.3. Cây tứ phân 37814.4. Cây tứ phân MX 382Phần 3. Thuật toán 388
Chương 15. So với thuật toán 389
15.1. Thuật toán và các vấn đề tương quan 38915.2. Tính công dụng của thuật toán 39115.3. Ký hiệu ô lớn và biểu diễn thời gian chạy vì chưng ký hiệu ô mập 39415.3.1.Định nghĩa ký hiệu ô lớn 39415.3.2.Biểu diễn thời hạn chạy của thuật toán 395
15.4. Đánh giá thời hạn chạy của thuật toán 39815.4.1.Luật tổng 39815.4.2.Thời gian chạy của những lệnh 399
15.5. Phân tích các hàm đệ quy 402Chương 16. Các chiến lược kiến tạo thuật toán 409
16.1. Chia – nhằm – trị 40916.1.1.Phương pháp thông thường 40916.1.1.Tìm max và min 411
16.2. Thuật toán đệ quy 41316.3. Quy hoạch hễ 41816.3.1.Phương pháp tầm thường 41816.3.2.Bài toán sắp tới xếp các đồ đồ gia dụng vào balô 41916.3.3.Tìm dãy bé chung của hai dãy số 421
16.4. Quay lui 42216.4.1.Tìm tìm vét can 42216.4.2.Quay lui 42416.4.3.Kỹ thuật cù lui để giải bài toán tối ưu 430
16.5. Kế hoạch tham nạp năng lượng 43216.5.1.Phương pháp phổ biến 43216.5.2.Thuật toán tham ăn uống cho câu hỏi người bán sản phẩm 43316.5.3.Thuật toán tham nạp năng lượng cho vấn đề balô 434
16.6. Thuật toán đột nhiên 435Chương 17. Bố trí 443
17.1. Các thuật toán sắp tới xếp đơn giản dễ dàng 44417.1.1.Sắp xếp lựa chọn 44417.1.2.Sắp xếp xen vào 44617.1.3.Sắp xếp nổi bọt bong bóng 447
17.2. Thu xếp hoà nhập 44817.3. Bố trí nhanh 45217.4. Sắp xếp sử dụng cây đồ vật tự phần tử 459Chương 18. Các thuật toán vật dụng thị 464
18.1. Một số khái niệm cơ phiên bản 46418.2. Màn biểu diễn đồ thị 46618.2.1.Biểu diễn đồ gia dụng thị bởi vì ma trận kề 46618.2.2.Biểu diễn trang bị thị bởi danh sách kề 468
18.3. Đi qua đồ gia dụng thị 46918.3.1.Đi qua vật dụng thị theo bề rộng 46918.3.2. Đi qu vật thị theo độ sâu 472
18.4. Đồ thị triết lý không có quy trình và thu xếp topo 47718.5. Đường đi ngắn nhất 48018.5.1.Đường đi ngắn nhất xuất phát điểm từ 1 đỉnh nguồn 48018.5.2. Đường đi ngắn duy nhất giữa các cặp đỉnh 485
18.6. Cây bao phủ ngắn duy nhất 48818.6.1.Thuật toán Prim 48918.6.2.Thuật toán Kruskal 493
Chương 19. Các bài toán NP – khó khăn và NP – không thiếu thốn 501
19.1. Thuật toán không solo định 50219.2. Những bài toán NP – cạnh tranh và NP – vừa đủ 50619.3. Một trong những bài toán NP – khó 509TẢI TÀI LIỆU XUỐNG
Hello anh em, mình đã bước đầu gia nhập Amazon dưới vai trò Thực tập sinh nghệ thuật Phát triển ứng dụng trong 6 tháng tính từ lúc tháng 2 năm 2021. Trong nội dung bài viết này, bản thân sẽ chia sẻ tất cả những tài nguyên đặc biệt quan trọng mà mình đã theo học tập về kết cấu dữ liệu và giải thuật (CTDL>) trong thời gian qua.
Đầu tiên thì là những trang web. Những trang mà lại mình follow bao gồm có:
Leet
Code— Trang web rất tốt để thực hành thực tế các câu hỏi CTDL>, giao diện người tiêu dùng tốt, phần trao đổi tuyệt vời.
Geeksfor
Geeks— quá đỉnh cho chúng ta sinh viên kỹ thuật Máy tính, bạn cũng có thể nhận được tất cả các thắc mắc với các chiến thuật khả thi cùng cũng có thể thực hành trên đây.
Techie
Delight— Một website đơn giản giành cho việc học CTDL>.
Một số website khác mà chúng ta có thể tham khảo là Interview
Bit với Educative.io.
Từ tởm nghiệm bản thân, tôi khuyên răn bạn không nên quá nhồi nhét quá, chỉ việc tìm hiểu những khái niệm và áp dụng chúng cho các câu hỏi, đồng thời nâng cao kiến thức của công ty về CTDL>. “Bạn càng thực hành nhiều, các bạn càng học được không ít hơn.” nếu bạn không thể làm được thắc mắc nào trong các nguồn tôi hỗ trợ hoặc ở ngẫu nhiên đâu, đừng dễ dàng bỏ cuộc, ít nhất hãy dành 1-2 giờ động não và ngay cả khi bạn không thể giải quyết được thì cũng đừng quá lo lắng. Chúng ta có thể dễ dàng search thấy một số đoạn clip trên Youtube với các giải thích cực dễ nắm bắt và chúng ta có thể tham khảo phần bàn bạc trong Leet
Code hoặc tham khảo Geeksfor
Geeks. Dần dần dần, bạn sẽ hình thành được tư duy với tự mình xử lý được vấn đề.
Để nghiên cứu các chủ đề thiết yếu về Khoa học máy tính như Hệ làm chủ cơ sở dữ liệu (Database Management System-DBMS), Hệ điều hành và Mạng trang bị tính, hãy tham khảoKnowledge GateandGate Smashers,Geeksfor
Geeks.
Về OOP, chúng ta có thể tham khảoSaurabh Shukla’s sir, C++ playlist.
Xem thêm: Full Bộ Tài Liệu Học Bằng Lái Xe Máy A1 Kèm Hướng Dẫn Học Hiệu Quả
Ngoài ra, hãy nhớ là ghi chú lại toàn bộ những điều chúng ta đã học, nó sẽ giúp bạn ôn tập nhanh chóng bất cứ khi nào bạn muốn.