Hàng đợi trong C # là gì?
Hàng đợi là một bộ sưu tập trường hợp đặc biệt đại diện cho khái niệm xuất trước. Hãy tưởng tượng một hàng người chờ đợi xe buýt. Thông thường, người đầu tiên vào xếp hàng sẽ là người đầu tiên bước vào xe buýt. Tương tự, người cuối cùng vào hàng đợi sẽ là người cuối cùng vào xe buýt. Các phần tử được thêm vào hàng đợi, một phần tử nằm trên đầu nhau.
Quá trình thêm một phần tử vào hàng đợi là hoạt động enqueuer. Để xóa một phần tử khỏi hàng đợi, bạn có thể sử dụng thao tác dequeuer. Hoạt động trong hàng đợi tương tự như ngăn xếp mà chúng ta đã thấy trước đây.
Hãy xem xét các thao tác có sẵn cho bộ sưu tập Hàng đợi một cách chi tiết hơn.
Khai báo hàng đợi
Phần khai báo của Hàng đợi được cung cấp bên dưới. Hàng đợi được tạo với sự trợ giúp của kiểu Dữ liệu hàng đợi. Từ khóa "mới" được sử dụng để tạo một đối tượng của Hàng đợi. Đối tượng sau đó được gán cho biến qt.
Queue qt = new Queue()
Thêm phần tử vào hàng đợi
Phương thức enqueue được sử dụng để thêm một phần tử vào hàng đợi. Cú pháp chung của câu lệnh được đưa ra dưới đây.
Queue.enqueue(element)
Xóa các phần tử khỏi hàng đợi
Phương thức dequeue được sử dụng để xóa một phần tử khỏi hàng đợi. Thao tác dequeue sẽ trả về phần tử đầu tiên của hàng đợi. Cú pháp chung của câu lệnh được đưa ra dưới đây
Queue.dequeue()
Đếm
Thuộc tính này được sử dụng để lấy số lượng các mục trong hàng đợi. Dưới đây là cú pháp chung của câu lệnh này.
Queue.Count
Chứa đựng
Phương thức này được sử dụng để xem liệu một phần tử có trong Hàng đợi hay không. Dưới đây là cú pháp chung của câu lệnh này. Câu lệnh sẽ trả về true nếu phần tử tồn tại, nếu không, nó sẽ trả về giá trị false.
Queue.Contains(element)
Bây giờ, hãy xem điều này hoạt động ở cấp độ mã. Tất cả mã được đề cập bên dưới sẽ được ghi vào ứng dụng Console của chúng tôi.
Mã sẽ được ghi vào tệp Program.cs của chúng tôi. Trong chương trình dưới đây, chúng tôi sẽ viết mã để xem chúng tôi có thể sử dụng các phương pháp nêu trên như thế nào.
Thí dụ
Trong ví dụ này, chúng ta sẽ thấy cách một hàng đợi được tạo. Tiếp theo, chúng ta sẽ xem cách hiển thị các phần tử của hàng đợi và sử dụng các phương thức Đếm và Chứa.
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Program{static void Main(string[] args){Queue qt = new Queue();qt.Enqueue(1);qt.Enqueue(2);qt.Enqueue(3);foreach (Object obj in qt){Console.WriteLine(obj);}Console.WriteLine(); Console.WriteLine();Console.WriteLine("The number of elements in the Queue " + qt.Count);Console.WriteLine("Does the Queue contain " + qt.Contains(3));Console.ReadKey();}}}
Giải thích mã
- Bước đầu tiên được sử dụng để khai báo Hàng đợi. Ở đây chúng tôi đang khai báo qt như một biến để chứa các phần tử của Hàng đợi của chúng tôi.
- Tiếp theo, chúng tôi thêm 3 phần tử vào Hàng đợi của chúng tôi. Mỗi phần tử được thêm vào thông qua phương thức "enqueue".
- Bây giờ một điều cần lưu ý về Hàng đợi là các phần tử không thể được truy cập thông qua vị trí chỉ mục như danh sách mảng. Chúng ta cần sử dụng một cách tiếp cận khác để hiển thị các phần tử của Hàng đợi. Vì vậy, đây là cách chúng ta bắt đầu hiển thị các phần tử của một hàng đợi.
- Đầu tiên chúng ta khai báo một biến tạm thời được gọi là obj. Điều này sẽ được sử dụng để giữ từng phần tử của Hàng đợi.
- Sau đó, chúng tôi sử dụng câu lệnh foreach để đi qua từng phần tử của Hàng đợi.
- Đối với mỗi phần tử Hàng đợi, giá trị được gán cho biến đối tượng.
- Sau đó, chúng tôi sử dụng lệnh Console.Writeline để hiển thị giá trị cho bảng điều khiển.
- Chúng tôi đang sử dụng thuộc tính "Count" để lấy số lượng mục trong Hàng đợi. Thuộc tính này sẽ trả về một số. Sau đó, chúng tôi hiển thị giá trị này cho bảng điều khiển.
- Sau đó, chúng tôi sử dụng phương thức "Chứa" để xem liệu giá trị của 3 có trong Hàng đợi của chúng tôi hay không. Điều này sẽ trả về giá trị true hoặc false. Sau đó, chúng tôi hiển thị giá trị trả về này cho bảng điều khiển.
Nếu mã trên được nhập đúng cách và chương trình được chạy, kết quả sau sẽ được hiển thị.
Đầu ra
Từ đầu ra, chúng ta có thể thấy rõ rằng các phần tử của Hàng đợi được hiển thị. Lưu ý rằng, không giống như "ngăn xếp" trong "hàng đợi", phần tử đầu tiên được đẩy vào hàng đợi sẽ được hiển thị trước. Số lượng các phần tử hàng đợi cũng được hiển thị trong đầu ra. Ngoài ra, giá trị của True được hiển thị để nói rằng giá trị của 3 được xác định trên hàng đợi.
C # Queue Dequeue
Bây giờ chúng ta hãy xem xét chức năng loại bỏ. Chúng ta sẽ thấy mã được yêu cầu để xóa phần tử cuối cùng khỏi hàng đợi.
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Program{static void Main(string[] args){Queue qt = new Queue();qt.Enqueue(1);qt.Enqueue(2);qt.Enqueue(3);qt.Dequeue();foreach (Object obj in qt){Console.WriteLine(obj);}Console.ReadKey();}}}
Giải thích mã
- Ở đây chúng tôi chỉ đưa ra phương thức "dequeue", được sử dụng để xóa một phần tử khỏi hàng đợi. Phương thức này sẽ loại bỏ phần tử đầu tiên của hàng đợi.
Nếu mã trên được nhập đúng cách và chương trình được chạy, kết quả sau sẽ được hiển thị.
Đầu ra:
Từ đầu ra, chúng ta có thể thấy rằng phần tử đầu tiên được thêm vào hàng đợi, đó là phần tử 1, đã bị xóa khỏi hàng đợi.
Tóm lược
- Hàng đợi dựa trên khái niệm xuất trước. Thao tác thêm một phần tử vào hàng đợi được gọi là thao tác xếp hàng. Thao tác xóa một phần tử vào hàng đợi được gọi là thao tác dequeue.