Mảng, Chỉ Mục, Tập Hợp phần 7
Số trang: 15
Loại file: pdf
Dung lượng: 217.13 KB
Lượt xem: 9
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Hàng đợi (Queue) Hàng đợi là một tập hợp trong đó có thứ tự vào trước và ra trước (FIFO). Tương tự như là những người mua vé tàu, họ xếp thành một hàng, người nào vào trước thì sẽ mua trước và ra trước. Hàng đợi là kiểu dữ liệu tốt để quản lý những nguồn tài nguyên giới hạn
Nội dung trích xuất từ tài liệu:
Mảng, Chỉ Mục, Tập Hợp phần 7Hàng đợi (Queue) Hàng đợi là một tập hợp trong đó có thứ tự vào trước và ra trước (FIFO). Tương tựnhư là những người mua vé tàu, họ xếp thành một hàng, người nào vào trước thì sẽmua trước và ra trước. Hàng đợi là kiểu dữ liệu tốt để quản lý những nguồn tàinguyên giới hạn. Ví dụ, chúng ta muốn gởi thông điệp đến một tài nguyên mà chỉ xửlý được duy nhất một thông điệp một lần. Khi đó chúng ta sẽ thiết lập một hàng đợithông điệp để xử lý các thông điệp theo thứ tự đưa vào.Lớp Queue thể hiện kiểu dữ liệu như trên, trong bảng 9.4 sau liệt kê những phươngthức và thuộc tính thành viên. Phương thức- thuộc Mục tính đích Synchronized() Phương thức static trả về một Queue wrapper được thread-safe. Count Thuộc tính trả về số thành phần trong hàng đợi IsReadOnly Thuộc tính xác định hàng đợi là chỉ đọc IsSynchronized Thuộc tính xác định hàng đợi được đồng bộ SyncRoot Thuộc tính trả về đối tượng có thể được sử dụng để đồng bộ truy cập Queue. Clear() Xóa tất cả các thành phần trong hàng đợi Clone() Tạo ra một bản sao Contains() Xác định xem một thành phần có trong mảng. CopyTo() Sao chép những thành phần của hàng đợi đến mảng một chiều đã tồn tại Dequeue() Xóa và trả về thành phần bắt đầu của hàng đợi. Enqueue() Thêm một thành phần vào hàng đợi. GetEnumerator() Trả về một enumerator cho hàng đợi. Peek() Trả về phần tử đầu tiên của hàng đợi và không xóa nó. ToArray() Sao chép những thành phần qua một mảng mới Bảng 9.4: Những phương thức và thuộc tính của Queue.Chúng ta có thể thêm những thành phần vào trong hàng đợi với phương thức Enqueue vàsau đó lấy chúng ra khỏi hàng đợi với Dequeue hay bằng sử dụng enumerator. Ví dụ9.15 minh họa việc sử dụng hàng đợi. Ví dụ 9.15: Làm việc với hàng đợi.-----------------------------------------------------------------------------namespace Programming_CSharp{ using System; using System.Collections; public class Tester { public static void Main() { Queue intQueue = new Queue(); // đưa vào trong mảng for(int i=0; i while (myEnumerator.MoveNext()) Console.Write(“{0} ”, myEnumerator.Current); Console.WriteLine(); } }}----------------------------------------------------------------------------- Kết quả:intQueue values: 0 5 10 15 20Dequeue 0intQueue values: 5 10 15 20Dequeue 5intQueue values: 10 15 20Peek 10intQueue values: 10 15 20-----------------------------------------------------------------------------Trong ví dụ này ArrayList được thay bằng Queue, chúng ta cũng có thể Enqueuenhững đối tượng do ta định nghĩa. Trong trong chương trình trên đầu tiên ta đưa 5 sốnguyên vào trong hàng đợi theo tứ tự 0 5 10 15 20. Sau khi đưa vào ta lấy ra phần tửđầu tiên là 0 nên hàng đợi còn lại 4 số là 5 10 15 20, lần thứ hai ta lấy ra 5 và chỉcòn 3 phần tử trong mảng 10 15 20. Cuối cùng ta dùng phương thức Peek() là chỉ xemphần tử đầu hàng đợi chứ không xóa chúng ra khỏi hàng đợi nên kết quả cuối cùnghàng đợi vẫn còn 3 số là 10 15 20. Một điểm lưu ý là lớp Queue là một lớp có thểđếm được enumerable nên ta có thể truyền vào phương thức PrintValues với kiểutham số khai báo IEnumerable. Việc chuyển đổi này là ngầm định. Trong phươngthức PrintValues ta gọi phương thức GetEnumerator, nên nhớ rằng đây là phươngthức đơn của tất cả những lớp IEnumerable. Kết quả là một đối tượng Enumeratorđược trả về, do đó chúng ta có thể sử dụng chúng để liệt kê tất cả những đối tượngcó trong tập hợp.Ngăn xếp (stack) Ngăn xếp là một tập hợp mà thứ tự là vào trước ra sau hay vào sao ra trước (LIFO),tương như ...
Nội dung trích xuất từ tài liệu:
Mảng, Chỉ Mục, Tập Hợp phần 7Hàng đợi (Queue) Hàng đợi là một tập hợp trong đó có thứ tự vào trước và ra trước (FIFO). Tương tựnhư là những người mua vé tàu, họ xếp thành một hàng, người nào vào trước thì sẽmua trước và ra trước. Hàng đợi là kiểu dữ liệu tốt để quản lý những nguồn tàinguyên giới hạn. Ví dụ, chúng ta muốn gởi thông điệp đến một tài nguyên mà chỉ xửlý được duy nhất một thông điệp một lần. Khi đó chúng ta sẽ thiết lập một hàng đợithông điệp để xử lý các thông điệp theo thứ tự đưa vào.Lớp Queue thể hiện kiểu dữ liệu như trên, trong bảng 9.4 sau liệt kê những phươngthức và thuộc tính thành viên. Phương thức- thuộc Mục tính đích Synchronized() Phương thức static trả về một Queue wrapper được thread-safe. Count Thuộc tính trả về số thành phần trong hàng đợi IsReadOnly Thuộc tính xác định hàng đợi là chỉ đọc IsSynchronized Thuộc tính xác định hàng đợi được đồng bộ SyncRoot Thuộc tính trả về đối tượng có thể được sử dụng để đồng bộ truy cập Queue. Clear() Xóa tất cả các thành phần trong hàng đợi Clone() Tạo ra một bản sao Contains() Xác định xem một thành phần có trong mảng. CopyTo() Sao chép những thành phần của hàng đợi đến mảng một chiều đã tồn tại Dequeue() Xóa và trả về thành phần bắt đầu của hàng đợi. Enqueue() Thêm một thành phần vào hàng đợi. GetEnumerator() Trả về một enumerator cho hàng đợi. Peek() Trả về phần tử đầu tiên của hàng đợi và không xóa nó. ToArray() Sao chép những thành phần qua một mảng mới Bảng 9.4: Những phương thức và thuộc tính của Queue.Chúng ta có thể thêm những thành phần vào trong hàng đợi với phương thức Enqueue vàsau đó lấy chúng ra khỏi hàng đợi với Dequeue hay bằng sử dụng enumerator. Ví dụ9.15 minh họa việc sử dụng hàng đợi. Ví dụ 9.15: Làm việc với hàng đợi.-----------------------------------------------------------------------------namespace Programming_CSharp{ using System; using System.Collections; public class Tester { public static void Main() { Queue intQueue = new Queue(); // đưa vào trong mảng for(int i=0; i while (myEnumerator.MoveNext()) Console.Write(“{0} ”, myEnumerator.Current); Console.WriteLine(); } }}----------------------------------------------------------------------------- Kết quả:intQueue values: 0 5 10 15 20Dequeue 0intQueue values: 5 10 15 20Dequeue 5intQueue values: 10 15 20Peek 10intQueue values: 10 15 20-----------------------------------------------------------------------------Trong ví dụ này ArrayList được thay bằng Queue, chúng ta cũng có thể Enqueuenhững đối tượng do ta định nghĩa. Trong trong chương trình trên đầu tiên ta đưa 5 sốnguyên vào trong hàng đợi theo tứ tự 0 5 10 15 20. Sau khi đưa vào ta lấy ra phần tửđầu tiên là 0 nên hàng đợi còn lại 4 số là 5 10 15 20, lần thứ hai ta lấy ra 5 và chỉcòn 3 phần tử trong mảng 10 15 20. Cuối cùng ta dùng phương thức Peek() là chỉ xemphần tử đầu hàng đợi chứ không xóa chúng ra khỏi hàng đợi nên kết quả cuối cùnghàng đợi vẫn còn 3 số là 10 15 20. Một điểm lưu ý là lớp Queue là một lớp có thểđếm được enumerable nên ta có thể truyền vào phương thức PrintValues với kiểutham số khai báo IEnumerable. Việc chuyển đổi này là ngầm định. Trong phươngthức PrintValues ta gọi phương thức GetEnumerator, nên nhớ rằng đây là phươngthức đơn của tất cả những lớp IEnumerable. Kết quả là một đối tượng Enumeratorđược trả về, do đó chúng ta có thể sử dụng chúng để liệt kê tất cả những đối tượngcó trong tập hợp.Ngăn xếp (stack) Ngăn xếp là một tập hợp mà thứ tự là vào trước ra sau hay vào sao ra trước (LIFO),tương như ...
Tìm kiếm theo từ khóa liên quan:
Công nghệ thông tin kỹ thuật lập trình ngôn ngữ lập trình ngôn ngữ C# C# Mảng Chỉ Mục Tập Hợp phần 7Gợi ý tài liệu liên quan:
-
52 trang 429 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 312 0 0 -
74 trang 294 0 0
-
96 trang 291 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 288 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 278 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 274 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 271 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 269 1 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 263 0 0