Tìm hiểu về lớp Stack qua ví dụ thực tế và ứng dụng của nó trong lập trình C# Ngăn xếp (Stack) được ứng dụng nhiều trong thực tế. Trong bài viết này Stanford sẽ giúp các bạn học lập trình c# tìm hiểu về dạng danh sách của lớp Stack trong lập trình C#. Trong C#, Stack<T> là một cấu trúc dữ liệu dạng ngăn xếp (stack) – hoạt động theo nguyên lý LIFO (Last In, First Out), nghĩa là phần tử được thêm vào sau cùng sẽ được lấy ra đầu tiên. Cấu trúc Stack<T> trong C# Stack<T> nằm trong namespace System.Collections.Generic. Đây là một lớp generic, cho phép bạn lưu trữ các phần tử thuộc bất kỳ kiểu dữ liệu nào. Các phương thức chính của Stack<T> Push(T item): Thêm phần tử vào đỉnh stack Pop(): Lấy và xóa phần tử ở đỉnh stack Peek(): Trả về phần tử ở đỉnh stack mà không xóa Contains(T item): Kiểm tra xem phần tử có tồn tại trong stack không Clear(): Xóa toàn bộ phần tử trong stack Count: Trả về số lượng phần tử hiện có Ví dụ: Giả sử bạn đang xây dựng một ứng dụng duyệt web đơn giản, nơi người dùng có thể quay lại trang trước đó. Ta sẽ dùng Stack<string> để lưu lịch sử các trang đã truy cập. using System; using System.Collections.Generic; class Program { static void Main() { Stack<string> history = new Stack<string>(); // Người dùng truy cập các trang history.Push("stanford.com.vn"); history.Push("gioithieu.com"); history.Push("lienhe.com"); Console.WriteLine("Trang hiện tại: " + history.Peek()); // Người dùng nhấn nút 'Quay lại' Console.WriteLine("Quay lại trang: " + history.Pop()); Console.WriteLine("Trang hiện tại sau khi quay lại: " + history.Peek()); // Duyệt toàn bộ lịch sử còn lại Console.WriteLine("\nLịch sử còn lại:"); foreach (var page in history) { Console.WriteLine(page); } } } Kết quả khi chạy chương trình Trang hiện tại: lienhe.com Quay lại trang: lienhe.com Trang hiện tại sau khi quay lại: gioithieu.com Lịch sử còn lại: gioithieu.com stanford.com.vn Ứng dụng của lớp Stack lập trình C# trong thực tế Stack<T> trong C# có rất nhiều ứng dụng thực tế trong lập trình phần mềm, đặc biệt là trong các tình huống cần xử lý dữ liệu theo nguyên tắc LIFO (Last In, First Out). Dưới đây là một số ứng dụng phổ biến và thực tế của Stack<T>: 1. Chức năng Undo/Redo - Ứng dụng: Trình soạn thảo văn bản, phần mềm đồ họa, IDE. - Cách dùng: Mỗi hành động của người dùng được lưu vào một Stack. Khi người dùng nhấn "Undo", chương trình Pop() hành động cuối cùng và thực hiện đảo ngược nó. 2. Duyệt lịch sử trình duyệt - Ứng dụng: Trình duyệt web. - Cách dùng: Mỗi trang web được lưu vào một Stack. Khi người dùng nhấn "Back", trang hiện tại được Pop() và quay lại trang trước đó. 3. Phân tích biểu thức toán học - Ứng dụng: Máy tính, trình biên dịch. - Cách dùng: Dùng Stack để chuyển đổi biểu thức từ infix sang postfix hoặc để tính giá trị biểu thức hậu tố. 4. Duyệt cây (Tree Traversal) - Ứng dụng: Trình biên dịch, hệ thống tệp, AI. - Cách dùng: Duyệt cây theo chiều sâu (DFS) có thể được thực hiện bằng Stack thay vì đệ quy. 5. Kiểm tra dấu ngoặc hợp lệ - Ứng dụng: Trình biên dịch, kiểm tra cú pháp. - Cách dùng: Dùng Stack<char> để kiểm tra xem các dấu ngoặc mở và đóng có khớp nhau không. 6. Backtracking (quay lui) - Ứng dụng: Giải Sudoku, mê cung, thuật toán tìm đường. - Cách dùng: Dùng Stack để lưu trạng thái trước đó và quay lui khi cần. 7. Gọi hàm đệ quy thủ công - Ứng dụng: Khi không thể dùng đệ quy do giới hạn bộ nhớ hoặc cần kiểm soát luồng thực thi. - Cách dùng: Dùng Stack để mô phỏng ngăn xếp lời gọi hàm. 8. Chuyển đổi hệ cơ số - Ứng dụng: Chuyển đổi số từ hệ thập phân sang nhị phân, bát phân, thập lục phân. - Cách dùng: Dùng Stack<int> để lưu phần dư khi chia và đảo ngược kết quả. Hy vọng qua bài viết này Stanford đã giúp các bạn học lập trình c# hiểu hơn về ngăn xếp trong lớp Stack<T> cũng như các ứng dụng của nó trong lập trình c#. Bên cạnh tự học c#, bạn có một lựa chọn tốt để học c# bài bản dưới sự hướng dẫn của chuyên gia giàu kinh nghiệm Stanford bằng việc đăng ký tham gia ngay lớp học tại đây: http://bit.ly/2SLPYFF để chinh phục con đường trở thành lập trình viên c# chuyên nghiệp và nhận ưu đãi hấp dẫn. Hoặc bạn có thể gọi theo hotline: 0963 723 236 - 0866 586 366 để được Stanford gọi lại tư vấn trực tiếp nhé. ==========🎬 🎬 🎬========== ☎️STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ Hotline: 0963 723 236 - 0866 586 366 Website: https://stanford.com.vn Facebook: http://bit.ly/2FN0TYb Youtube: http://bit.ly/2TkKT7I Trụ sở chính: Toà nhà iTech, Số 20 ngõ 678 đường Láng, Đống Đa, Hà Nội Tags: tìm hiểu stack c#, ứng dụng stack c#