[PDF]Cấu Trúc Dữ Liệu Và Giải Thuật - Đh Công Nghệ Thông Tin - Ths Trịnh Quốc Sơn

Bài giảng/Slide/Giáo trình Cấu Trúc Dữ Liệu Và Giải Thuật

0courseintro new.pdf
ctdl_01_tquan.pdf
ctdl_02_sxtk.pdf
ctdl_02_sxtk.pdf
ctdl_03_ctdulieudong.pdf
ctdl_04_listdon.pdf
ctdl_05_listkep.pdf
ctdl_06_cay.pdf
ctdl_07_caynhiphantimk.pdf
ctdl_08_caynhiphancb.pdf

Bài tập/Thực hành Cấu Trúc Dữ Liệu Và Giải Thuật

6.phuongphapchiadetri.pdf
b1.pdf
bai tap cay nhi phan.pdf
balan nguoc.pdf
ctdl-lab01-on_tap.pdf
ctdl.pdf
de th.pdf
hdth buoi 2.pdf
rpn.pdf

Đề thi Cấu Trúc Dữ Liệu Và Giải Thuật

14 đề thi thực hành ctdl+gt.doc
14 đề thi thực hành ctdl+gt.pdf

các bạn tự tìm sách trên google theo gợi ý bên dưới nhé!

Algorithms - Robert Sedgewick And Kevin Wayne.Pdf
Algorithms In C - R.Sedgewick.Pdf
Co2003_Cautrucdulieuvagiaithuat.Pdf
Ctdl-Gt Bưu Chính Viễn Thông.Pdf
Ctdl-Gt Đh Cần Thơ.Pdf
Competitive Programmer’s Handbook.Pdf
Cấu Trúc Dữ Liệu - Lê Minh Hoàng.Pdf
Cấu Trúc Dữ Liệu Tiếng Việt (1).Pdf
Cấu Trúc Dữ Liệu Tiếng Việt (2).Pdf
Cấu Trúc Dữ Liệu Và Thuật Toán - Nguyễn Đức Nghĩa - Đh Bách Khoa Hà Nội.Pdf
Data Structures And Algorithms Made Easy - Data Structures And Algorithmic Puzzles.Pdf
Data Structures And Algorithms In C++ A. Drozdek.Pdf
Data Structures And Algorithms In Java.Pdf
Data Structures And Algorithms In Python.Pdf
Data Structures And Algorithms With Python.Pdf
Data Structures And Program Design In C++ - Robert L. Kruse.Pdf
Giải Thuật Và Lập Trình - Lê Minh Hoàng.Pdf
Introduction To Algorithms, Third Edition.Pdf
Introduction To Algorithm Tiếng Việt.Pdf
Thuật Toán Nâng Cao - Nguyễn Thanh Bình - Bk Đà Nẵng.Pdf
Cấu Trúc Dữ Liệu Và Giải Thuật Dương Anh Đức, Nguyễn Hạnh Nhi.Pdf
Cấu Trúc Dữ Liệu Và Giải Thuật Đỗ Xuân Lôi.Pdf
Cầm Nang Thuật Toán Vol1.Pdf
Cầm Nang Thuật Toán Vol2.Pdf
Giải Thuật Và Lập Trình Lê Minh Hoàng.Pdf
Tài Liệu Giáo Khoa Chuyên Tin_Quyen_1.Pdf
Tài Liệu Giáo Khoa Chuyên Tin_Quyen_2.Pdf
Tài Liệu Giáo Khoa Chuyên Tin_Quyen_3_Tap_1.Pdf
Tài Liệu Giáo Khoa Chuyên Tin_Quyen_3_Tap_2.Pdf
Đinh Mạnh Tường Đh Công Nghệ Đhqg Hn.Pdf

Giới thiệu, nội dung môn học

Môn học nhằm cung cấp cho sinh viên khả năng sử dụng các cấu trúc dữ liệu nền tảng. Môn học cũng hướng dẫn sinh viên hiểu, phân tích và đánh giá được các giải thuật làm việc với các cấu trúc dữ liệu đó. Ôn lại về lập trình, các kiểu dữ liệu trong C/C++, đặc biệt là cấu trúc và con trỏ. Giới thiệu về độ phức tạp tính toán và đệ qui. Các cấu trúc dữ liệu và sự phân tích chúng: danh sách; chồng và hàng; cây, cây nhị phân, cây nhị phân tìm kiếm, AVL và đa phân; heap; giải thuật sắp xếp; bảng băm; và đồ thị.

Kết quả cần đạt được

Phân tích giải thuật L.O.1.1 – Định nghĩa được các khái niệm độ phức tạp và độ phức tạp trong các trường hợp “tốt nhất”, “xấu nhất”, và “trung bình”. L.O.1.2 – Phân tích được các giải thuật và sử dụng được ký hiệu “Big O” để ghi ra độ phức tạp của giải thuật cấu thành từ các cấu trúc điều khiển: tuần tự, rẽ nhánh và lặp. L.O.1.3 – Liệt kê được, cho được ví dụ và so sánh được các lớp độ phức tạp, như, hằng số, log, tuyến tính, etc. L.O.1.4 – Nhận thức được sự cân bằng giữa bộ nhớ và thời gian trong giải thuật. L.O.1.5 – Mô tả được các chiến lược thiết kế giải thuật và giải quyết bài toán. Sử dụng cấu trúc dữ liệu danh sách, chồng và hàng L.O.2.1 – Phát họa được bằng hình ảnh cho: (a) danh sách hiện thực bằng mảng và bằng liên kết (con trỏ); (b) cho chồng; và (c) cho hàng đợi và hàng đợi vòng (mức logic). L.O.2.2 – Viết được bằng mã giả mô tả cấu trúc lưu trữ cho: (a) danh sách hiện thực bằng mảng và bằng liên kết; (b) cho chồng; và (c) cho hàng đợi và hàng đợi vòng (mức logic). L.O.2.3 – Liệt kê được các phương thức cần thiết cho từng cấu trúc như danh sách, chồng và hàng đợi; cũng như mô tả được chúng bằng mã giả (mức logic). L.O.2.4 – Hiện thực được các cấu trúc danh sách, chồng và hàng đợi bằng C/C++ (mức physics) L.O.2.5 – Sử dụng được danh sách, chồng, và hàng để giải quyết bài toán thực, cũng như cân nhắc chọn lựa kiểu hiện thực tối ưu. L.O.2.6 – Phân tích được và làm thí nghiệm đánh giá các phương thức đã hổ trợ cho các cấu trúc danh sánh, chồng, và hàng. Sử dụng cấu trúc cây L.O.3.1 – Phát họa được bằng hình ảnh cho các cây tiêu biểu, như, cây nhị phân, cây nhị phân đầy đủ, cây nhị phân cân bằng, cây AVL, cây đa phân, v.v. (mức logic). L.O.3.2 – Viết được bằng mã giả mô tả cấu trúc lưu trữ cho các loại cây (mức logic) L.O.3.3 – Liệt kê được các phương thức cần thiết cho cho các cấu trúc cây; cũng như mô tả được chúng bằng mã giả (mức logic). L.O.3.4 – Chỉ ra được và cho ví dụ minh họa về tầm quan trọng của tính cân bằng trong cây. L.O.3.5 – Chỉ ra được và vẽ hình minh họa về tất cả các trường mất cân bằng trong cây AVL và cây B, cũng như thực hiện từng bước để tái cân bằng chúng trên hình vẽ (mức logic). L.O.3.6 – Hiện thực được các cấu trúc cây nhị phân và cây AVL bằng C/C++ L.O.3.7 – Sử dụng được cây nhị phân và cây AVL để giải quyết bài toán thực, đặc biệt là liên quan đến tìm kiếm. L.O.3.8 – Phân tích được và làm thực nghiệm đánh giá được các phương thức đã hổ trợ cho các cấu trúc cây nhị phân và cây AVL. Sử dụng Heap L.O.4.1 – Chỉ ra được những ứng dụng cần đến Heap L.O.4.2 – Phác họa được bằng hình ảnh cho cấu trúc Heap và nêu ra sự liên quan đến lưu trữ ở dạng mảng. L.O.4.3 – Liệt kê được các phương thức cần thiết cho cho cấu trúc heap; cũng như mô tả được chúng bằng mã giả (mức logic). L.O.4.4 – Phác họa được bằng hình ảnh các phương thức để đảm bảo tính chất của cấu trúc Heap khi đưa vào hay lấy ra phần tử trong heap (mức logic). L.O.4.5 – Hiện thực được cấu trúc heap bằng C/C++. L.O.4.6 – Phân tích được và làm thực nghiệm đánh giá được các phương thức đã hổ trợ cho cấu trúc Heap. Sử dụng bảng băm L.O.5.1 – Vẽ được hình minh họa một bảng băm cùng với khái niệm về khóa, đụng độ và giải quyết đụng độ. L.O.5.2 – Mô tả được bằng mã giả và cho ví dụ minh họa cho các hàm băm cơ bản. L.O.5.3 – Mô tả được bằng mã giả và cho ví dụ minh họa cho các phương thức giải quyết đụng độ. L.O.5.4 – Hiện thực được cấu trúc bảng băm bằng C/C++. L.O.5.5 – Phân tích được và làm thực nghiệm đánh giá được các phương thức đã hổ trợ cho cấu trúc bảng băm. Phát triển các giải thuật sắp xếp L.O.6.1 – Minh họa được bằng hình vẽ từng bước hoạt động của các giải thuật sắp xếp. L.O.6.2 – Mô tả được bằng mã giả cho các giải thuật sắp xếp. L.O.6.3 – Hiện thực được các giải thuật sắp xếp bằng C/C++ . L.O.6.4 – Phân tích được và làm thực nghiệm đánh giá các giải thuật sắp xếp. L.O.6.5 – Sử dụng được giải thuật sắp xếp trong bài toán thực. Hiểu biết cơ bản về đồ thị L.O.7.1 – Phát họa được bằng hình ảnh cho các khái niệm như đồ thị liên thông và không liên thông, đồ thị có hướng và không hướng, chu trình, v.v. L.O.7.2 – Vẽ được hình minh họa và mô tả cấu trúc lưu trữ cho đồ thị ở các dạng ma trận kề và danh sách kề bằng mã giả (mức logic). L.O.7.3 – Liệt kê được các phương thức cần thiết cho cho các cấu trúc đồ thị; cũng như mô tả được chúng bằng mã giả (mức logic). L.O.7.4 – Minh họa được bằng hình ảnh các phương pháp duyệt đồ thị cơ bản (depth first and bread-first). L.O.7.5 – Hiện thực được cấu trúc lưu trữ đồ thì bằng C/C++. L.O.7.6 – Hiện thực được các phương pháp duyệt nói trên bằng C/C++ và sử dụng chúng giải quyết bài toán thực. L.O.7.7 – Minh họa bằng hình vẽ từng bước hoạt động của các giải thuật tìm đường ngắn nhất bằng Dijktra và giải thuật tìm cây phủ tối tiểu bằng giải thuật Prim. Sử dụng đệ quy L.O.8.1 – Mô tả được các thành phần cơ bản của một giải thuật đệ quy. L.O.8.2 – Vẽ được cây mô tả các lần gọi hàm và giá trị của các tham số được truyền vào các hàm đó. L.O.8.3 – Cho được ví dụ về một hàm gọi đệ quy viết bằng C/C++. L.O.8.4 – Phát triển được giải thuật đệ quy cho các phương thức cần thiết của các cấu trúc: danh sách, cây, heap, tìm kiếm trên cây và tìm kiếm nhị phân, và đồ thị. L.O.8.5 – Làm được thí nghiệm để so sánh cách tiếp cận đệ quy và cách lặp. L.O.8.6 – Cho được ví dụ minh họa sự liên quan giữa Backtracking và đệ quy.

Tài liệu tham khảo

Sách, Giáo trình chính: [1]. “Data Structures: a Pseudocode Approach with C++”, R.F.Gilberg and B.A. Forouzan, Thomson Learning Inc., 2001. Sách tham khảo: [1] “Data Structures and Algorithms in C++”, A. Drozdek, Thomson Learning Inc., 2005. [2] “C/C++: How to Program”, 7th Ed. – Paul Deitel and Harvey Deitel, Prentice Hall, 2012. [3] Internet. [4] Minh họa cấu trúc dữ liệu và giải thuật