Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Fundamental Data Structures & Algorithms using C language.

Cấu trúc Dữ liệu và Giải thuật Cơ bản sử dụng ngôn ngữ C.

Cấu trúc Dữ liệu và Giải thuật Cơ bản sử dụng ngôn ngữ C.

Học Cấu trúc Dữ liệu và giải thuật cho Ngăn xếp, Hàng đợi, Danh sách Liên kết, Cây Tìm kiếm Nhị phân và Đống (sử dụng Lập trình C).

4.6
(979 đánh giá)
8,108 học viên
Giảng viên
Shibaji Paul
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 349.000đ -86%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
15.0 giờ video
124 bài giảng
13 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 29/05/2026

Bạn sẽ học được gì

Đệ quy, Ngăn xếp, Ký pháp Ba Lan, biểu thức trung tố hậu tố, FIFO, Hàng đợi Vòng và Hai đầu, Danh sách Liên kết - Tuyến tính, Đôi và Vòng, Ngăn xếp & Hàng đợi dùng Danh sách Liên kết.
Ngăn xếp là gì, giải thuật cho thao tác Push và Pop. Triển khai cấu trúc dữ liệu Ngăn xếp bằng C.
Sử dụng Ngăn xếp - Kiểm tra dấu ngoặc trong biểu thức.
Sử dụng Ngăn xếp - Hiểu ký pháp Ba Lan, giải thuật và triển khai chuyển đổi trung tố sang hậu tố và tính giá trị biểu thức hậu tố.
Hàng đợi FIFO là gì, hiểu các thao tác Hàng đợi - Chèn và xóa, triển khai Hàng đợi FIFO.
Hạn chế của hàng đợi FIFO, khái niệm Hàng đợi Vòng - Triển khai Hàng đợi Vòng.
Khái niệm Hàng đợi Hai đầu, phát triển logic và triển khai hàng đợi hai đầu.
Khái niệm Danh sách Liên kết - định nghĩa, tại sao cần danh sách liên kết.
Danh sách Liên kết Đơn - phát triển giải thuật cho các phương thức khác nhau và triển khai chúng bằng lập trình C.
Danh sách Liên kết Đôi - phát triển giải thuật cho các phương thức khác nhau và triển khai chúng bằng lập trình C.
Danh sách Liên kết Vòng - phát triển giải thuật cho các phương thức khác nhau và triển khai chúng bằng lập trình C.
Cách ước tính độ phức tạp thời gian của giải thuật. Ký hiệu Big Oh, Big Omega và Big Theta.
Đệ quy, khái niệm Đệ quy Đuôi, So sánh Đệ quy và Vòng lặp.
Cây Nhị phân, định nghĩa, duyệt cây (in-order, pre-order và post-order), cây tìm kiếm nhị phân, triển khai.
Đống - khái niệm, định nghĩa, cây nhị phân gần đầy đủ, chèn vào đống, điều chỉnh đống, xóa, heapify và sắp xếp vun đống.

Yêu cầu

Học viên cần quen thuộc với lập trình C cơ bản.

Đối tượng phù hợp

Học viên muốn chuẩn bị cho phỏng vấn tại các công ty hàng đầu như Google, Amazon hay Microsoft.
Học viên mong muốn trở thành lập trình viên hiệu quả, có môn cấu trúc dữ liệu trong chương trình học.
Học viên muốn có kiến thức chuyên sâu về Ngăn xếp, Hàng đợi, Danh sách Liên kết, Hiệu quả Giải thuật, Cây Nhị phân, Đống.

Nội dung khóa học

14 phần • 124 bài giảng
1 Giới thiệu khóa học.
1 Giới thiệu Ngăn xếp.
2 Một số ví dụ thực tế sử dụng Ngăn xếp.
3 Giải thuật cơ bản cho cấu trúc dữ liệu Ngăn xếp.
4 Triển khai Ngăn xếp.
5 Giải thích thêm về việc sử dụng Con trỏ.
6 Xây dựng menu cho chương trình.
7 Làm cho Ngăn xếp động.
8 Làm cho Ngăn xếp linh hoạt hơn.
9 Ngăn xếp trong Thực tế - Chuyển đổi thập phân sang nhị phân.
10 Ngăn xếp trong Thực tế - Đảo ngược nội dung tệp văn bản.
1 Hiểu vấn đề.
2 Phát triển giải thuật kiểm tra dấu ngoặc.
3 Giải thích giải thuật kiểm tra dấu ngoặc đã phát triển.
4 Triển khai chương trình kiểm tra dấu ngoặc - Phần 1.
5 Triển khai chương trình kiểm tra dấu ngoặc - Phần 2.
1 Giới thiệu Ký pháp Ba Lan.
2 Hiểu độ ưu tiên toán tử, ý tưởng chuyển đổi - trung tố sang tiền tố/hậu tố.
3 Cách tính giá trị Ký pháp Ba Lan hoặc Ký pháp Ba Lan Đảo ngược.
4 Giải thuật tính giá trị biểu thức Hậu tố.
5 Triển khai tính giá trị biểu thức Hậu tố bằng ngôn ngữ C.
6 Thảo luận cách chuyển đổi Trung tố sang Hậu tố.
7 Chuyển đổi Trung tố sang Hậu tố - Thêm ví dụ với quy trình.
8 Chi tiết hóa quy trình chuyển đổi trung tố sang hậu tố.
9 Viết giải thuật chuyển đổi biểu thức Trung tố sang Hậu tố tương đương.
10 Chạy thử giải thuật chuyển đổi Trung tố sang Hậu tố.
11 Bắt đầu triển khai, trước tiên hãy phát triển hàm kiểm tra độ ưu tiên.
12 Viết hàm C để chuyển đổi Trung tố sang Hậu tố.
13 Kết hợp hàm chuyển đổi và tính giá trị trong một chương trình.
1 Giới thiệu Hàng đợi.
2 Ý tưởng triển khai hàng đợi FIFO dùng Mảng - Hiểu qua hoạt ảnh.
3 Giải thuật cho Hàng đợi FIFO.
4 Chạy thử giải thuật Hàng đợi FIFO.
5 Triển khai Hàng đợi FIFO.
6 Menu cho chương trình Hàng đợi.
7 Lỗ hổng trong cách triển khai Hàng đợi FIFO của chúng ta.
8 Hiểu lỗ hổng, tại sao nó xảy ra?
9 Giới thiệu Hàng đợi Vòng.
10 Các thao tác Hàng đợi Vòng. Cách thực hiện thao tác enqueue và dequeue.
11 Giải thuật cho các thao tác Hàng đợi Vòng.
12 Triển khai Hàng đợi Vòng.
13 Giới thiệu Hàng đợi Hai đầu.
14 Phát triển giải thuật cho các thao tác Hàng đợi Hai đầu.
15 Chạy thử giải thuật DEQ.
16 Triển khai Hàng đợi Hai đầu.
1 Giới thiệu Danh sách Liên kết.
2 Định nghĩa Danh sách Liên kết, khái niệm Node, hiểu các thuật ngữ cơ bản.
3 Phân loại Danh sách Liên kết - Đơn, Đôi và Vòng.
1 Hiểu kiểu 'struct' cần thiết để triển khai danh sách liên kết đơn.
2 Các thao tác Danh sách Liên kết Đơn - bắt đầu chương trình.
3 Phát triển thao tác Chèn Ở Đuôi - Thêm node mới làm node cuối.
4 Triển khai Chèn Ở Đầu - Thêm node mới làm node đầu tiên.
5 Duyệt danh sách liên kết - in nội dung mỗi node.
6 In chi tiết từng node của danh sách liên kết.
7 Biên dịch và thực thi chương trình đã viết đến nay.
8 Thực hành Danh sách Liên kết Đơn.
9 Phát triển thao tác tìm kiếm - để tìm kiếm mục tiêu trong danh sách liên kết.
10 Tải dữ liệu từ tệp và xây dựng danh sách liên kết.
11 Tạo Danh sách Liên kết từ các số nguyên ngẫu nhiên.
12 Thao tác xóa đầu tiên để xóa node đầu.
13 Thao tác xóa cuối cùng để xóa node cuối.
14 Xóa một node chứa dữ liệu mục tiêu.
15 Đảo ngược danh sách liên kết.
16 Duyệt danh sách liên kết đơn bằng đệ quy.
17 Triển khai Ngăn xếp dùng danh sách liên kết đơn.
18 Triển khai Hàng đợi dùng Danh sách Liên kết.
1 Giới thiệu Danh sách Liên kết Đôi.
2 Bắt đầu chương trình triển khai các thao tác cho Danh sách Liên kết Đôi.
3 Triển khai phương thức Thêm Đầu để thêm node mới làm node đầu tiên.
4 Triển khai Thêm Cuối để thêm node mới làm node cuối.
5 Thao tác Tìm kiếm và Chèn Sau và Chèn Trước.
6 Xóa một node - xóa đầu, xóa cuối và xóa mục tiêu.
7 Hàng đợi Hai đầu dùng danh sách liên kết đôi.
1 Giới thiệu Danh sách Liên kết Vòng.
2 Thao tác Chèn cho Danh sách Liên kết Vòng.
3 Thao tác Xóa Node.
4 Phát triển thao tác tìm kiếm và in.
1 Hiệu quả của Giải thuật - Giới thiệu khái niệm.
2 Phương pháp Toán học để ước tính hiệu quả.
3 Ký hiệu Big-Oh - ước tính độ phức tạp trường hợp xấu nhất.
4 Cách tính Big-Oh cho một giải thuật cho trước, giải thích với ví dụ.
5 Tiếp tục Big-Oh.
6 Thêm một số ví dụ về tính Big-Oh.
7 Ý tưởng độ phức tạp trường hợp tốt nhất - Ký hiệu Big Omega.
8 Ý tưởng độ phức tạp trường hợp trung bình - Ký hiệu Big theta.
1 Hiểu quy trình tìm kiếm nhị phân.
2 Triển khai và độ phức tạp trường hợp xấu nhất của Tìm kiếm Nhị phân.
1 Giới thiệu Phần này.
2 Hãy bắt đầu với khái niệm cơ bản về Đệ quy.
3 Khi nào và làm thế nào để kết thúc - điều kiện cơ sở của Đệ quy.
4 Hãy đi sâu vào lời gọi.
5 Ví dụ Đệ quy 1 - Dãy Juggler.
6 Ví dụ Đệ quy 2 - Tìm Giai thừa.
7 Ví dụ Đệ quy 3 - Tìm kiếm Nhị phân.
8 Ví dụ Đệ quy 4 - Thập phân sang Nhị phân.
9 Gọi một hàm - Hệ điều hành tạo ngăn xếp.
10 Khi nào không cần ngăn xếp.
11 Đệ quy Đuôi.
12 So sánh Đệ quy và Vòng lặp - Phần 1.
13 So sánh Đệ quy và Vòng lặp - Phần 2: Khi nào phương pháp đệ quy tốt hơn vòng lặp.
1 Giới thiệu Cây Nhị phân.
2 Hiểu các thuật ngữ khác nhau liên quan đến Cây nhị phân.
3 Cách duyệt Cây Nhị phân - Duyệt In-order.
4 Duyệt Cây nhị phân dùng giải thuật duyệt Pre-order.
5 Duyệt cây nhị phân dùng giải thuật duyệt Post-order.
6 Xây dựng Cây Nhị phân từ danh sách duyệt cho trước.
7 Cách định nghĩa cấu trúc Node cho Cây Nhị phân.
8 Hãy cùng hiểu về Cây Tìm kiếm Nhị phân.
9 Triển khai thao tác chèn cho Cây Tìm kiếm Nhị phân.
10 Triển khai duyệt In-order cho Cây Tìm kiếm Nhị phân.
11 Triển khai duyệt pre-order và post-order.
12 Triển khai Tìm kiếm Nhị phân cho Cây Tìm kiếm Nhị phân.
13 Mã nguồn - Cây Tìm kiếm Nhị phân.
1 Giới thiệu Phần này.
2 Khái niệm Cấu trúc Dữ liệu Cây Nhị phân (Ôn tập).
3 Cây Nhị phân Gần Đầy đủ.
4 Biểu diễn Cây Nhị phân Gần Đầy đủ dùng Mảng 1 chiều.
5 Định nghĩa Hình thức của Đống.
6 Chèn vào Đống.
7 Xóa một phần tử khỏi Đống.
8 Thao tác Điều chỉnh Đống.
9 Thao tác Heapify - Xây dựng đống từ một mảng một chiều bất kỳ.
10 Giải thuật Sắp xếp Vun đống.
11 Triển khai Sắp xếp Vun đống bằng ngôn ngữ C.

Giới thiệu khóa học

This course will help the students ability to grasp the knowledge of data structures and algorithm using the C programming language. Knowledge of Data Structures and Algorithms are essential in developing better programming skills.

This course is based on the standard curriculum of Universities across the globe for graduate level engineering and computer application course.

Apart from step by step development of concepts students will also learn how to write algorithms and then how to write programs based on the algorithms in this course.

 

You will learn the following in this course:  (All implemented using C programming)

  1. Fundamental of Data Structure concept

     

  2. Why we need Data Structures

     

  3. Stack - Idea, definition, algorithm, implementations.

     

  4. Using Stack - Parenthesis checking, Polish Notation, Infix to postfix conversion and evaluation.

     

  5. FIFO Queue - Idea, definition, algorithm, implementation.

     

  6. Circular Queue using array - Idea, definition, algorithm, implementation.

     

  7. Double ended queue using array - Idea, definition, algorithm, implementation.

     

  8. Linked List - Idea, definition, why we need linked list. Comparison with array.

     

  9. Singly Linked List - Development of algorithm for various operations and then Implementation of each of them

     

  10. Creating Stack and Queue using Singly Linked list - Implementation.

     

  11. Doubly Linked List - Idea, definition, algorithm of various operations and implementations.

     

  12. Circular Linked List - Idea, definition, algorithm and implementations.

14. Calculating efficiency of algorithms, Worst Case (Big Oh), Average Case (Big Theta) and Best case (Big omega) complexities. How to calculate them for different algorithms.

15. Binary Searching

16. Recursion in detail. Example program using recursion and the critical comparison between Recursive approach and Iterative approach of problem solving.

 17. Binary Tree, definition, traversal (In, Pre and Post Order), Binary Search Tree implementation.

18. Heap data structure,  definition, heap insertion, deletion, heap adjust, Heapify and heap sort.

 

 

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học C Language
Hiển thị tất cả khoá học Computer Science
Hiển thị tất cả khoá học Data Structures Algorithms
Hiển thị tất cả khoá học Programming
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊