29/10/2019, 13:57

[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#. 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. ...

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 Stackhàng đợi Queue trong ngôn ngữ lập trình C#.

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:

stack_queue_demo

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 ...

stack_demo

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.

queue_csharp

á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

DOWNLOAD SOURCE

Tags: queue c#stacks c#
0