- [C#] Cách Sử Dụng DeviceId trong C# Để Tạo Khóa Cho Ứng Dụng
- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
[C#] Hướng dẫn sử dụng ngăn xếp Stacks và hàng đợi Queues trong Winform
Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn cách sử dụng ngăn xếp Stack và hàng đợi Queue trong ngôn ngữ lập trình C#.
[C#] Stack and Queue in Winform
Dưới đây mình có ứng dụng demo về cách sử dụng Queue, Stack trực quan, các bạn có thể download source code bên dưới.
Code này được viết bằng WPF:
1. Ngăn Xếp Stack C#
Ngăn xếp stack khá giống hàng đợi, nhưng khác đó là LIFO (last in, first out) - vào sau thì ra trước, nó giống như xếp hàng hóa vào các container.
Cái nào đưa vào sau thì khi thảo dỡ lại thực hiện đầu tiên, nó giống như xếp đĩa vào cọc đĩa CD cái nào đưa vào cọc trước sẽ được lấy ra sau ...
Trong C# với .NET nó cung cấp lớp Stack<T>
để thực hiện giải thuật này.
Các phương thức, thuộc tính của Stack
Thành viên | Diễn giải |
---|---|
Count |
Thuộc tính lấy tổng số phần tử trong hàng |
Push |
đẩy (thêm) một phần tử vào đỉnh stack |
Pop |
đọc - xóa phần tử đỉnh stack |
Peek |
đọc phần tử đỉnh stack |
Contains |
kiểm tra một phần tử có trong stack hay không |
Ví dụ, nhập vào A, B, C thì in ra CBA (vào sau ra trước)
var alphabet = new Stack<char>();
alphabet.Push('A');
alphabet.Push('B');
alphabet.Push('C');
foreach (char item in alphabet) {
Console.Write(item);
}
2. Hàng đợi Queue C#
Hàng đợi là mô hình FIFO (first in, first out - vào trước, ra trước hay đến trước được phục vụ trước), nó giải quyết các bài toán thực tế giống như xếp hàng mua vé máy bay ...
.NET cung cấp lớp Queue<T>
để giả quyết giải thuật hàng đợi.
ác phương thức, thuộc tính của Queue
Thành viên | Diễn giải |
---|---|
Count |
Thuộc tính lấy tổng số phần tử trong hàng |
Enqueue |
vào xếp hàng - đưa phần tử vào cuối hàng đợi |
Dequeue |
đọc - và loại ngay phần tử ở đầu hàng đợi - lỗi nếu hàng đợi không có phần tử nào |
Peek |
đọc phần tử đầu hàng đợi |
Vi dụ, các hồ sơ cần xử lý của khách hàng gửi đến, ai đến trước được đưa vào danh sách trước - và khi xử lý thì được xử lý trước
Queue<string> hoso = new Queue<string>();
hoso.Enqueue("Hồ sơ A"); // Hồ sơ xếp thứ nhất trong hàng đợi
hoso.Enqueue("Hồ sơ B"); // Hồ sơ xếp thứ hai
hoso.Enqueue("Hồ sơ C");
while (hoso.Count > 0) {
// Lấy hồ sơ xếp trước xử lý trước, cho đến hết
var hs = hoso.Dequeue();
}
Thanks for watching!
laptrinhvb via xuanthulab