C # Stack với Ví dụ

Mục lục:

Anonim

Stack trong C # là gì?

Ngăn xếp là một tập hợp trường hợp đặc biệt đại diện cho khái niệm cuối cùng vào trước (LIFO). Để hiểu về LIFO trước tiên, chúng ta hãy lấy một ví dụ. Hãy tưởng tượng một chồng sách với mỗi cuốn sách được xếp chồng lên nhau.

Khái niệm cuối cùng trong đầu ra trước trong trường hợp sách có nghĩa là chỉ có thể lấy phần sách trên cùng ra khỏi chồng sách. Không thể xóa sách ở giữa vì điều đó sẽ làm xáo trộn thiết lập của ngăn xếp.

Do đó trong C #, ngăn xếp cũng hoạt động theo cách tương tự. Các phần tử được thêm vào ngăn xếp, một phần tử ở trên cùng của nhau. Quá trình thêm một phần tử vào ngăn xếp được gọi là hoạt động đẩy. Để xóa một phần tử khỏi ngăn xếp, bạn cũng có thể xóa phần tử trên cùng của ngăn xếp. Thao tác này được gọi là pop.

Hãy xem xét các hoạt động có sẵn cho bộ sưu tập Stack một cách chi tiết hơn.

Khai báo ngăn xếp

Ngăn xếp được tạo với sự trợ giúp của kiểu Dữ liệu ngăn xếp. Từ khóa "mới" được sử dụng để tạo một đối tượng của Ngăn xếp. Đối tượng sau đó được gán cho biến st.

Stack st = new Stack()

Thêm các phần tử vào ngăn xếp

Phương thức đẩy được sử dụng để thêm một phần tử vào ngăn xếp. Cú pháp chung của câu lệnh được đưa ra dưới đây.

Stack.push(element)

Xóa các phần tử khỏi ngăn xếp

Phương thức pop được sử dụng để xóa một phần tử khỏi ngăn xếp. Thao tác pop sẽ trả về phần tử trên cùng của ngăn xếp. Cú pháp chung của câu lệnh được đưa ra dưới đây

 Stack.pop()

Đếm

Thuộc tính này được sử dụng để lấy số lượng vật phẩm trong Ngăn xếp. Dưới đây là cú pháp chung của câu lệnh này.

Stack.Count

Chứa đựng

Phương pháp này được sử dụng để xem liệu một phần tử có trong Ngăn xếp 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.

Stack.Contains(element)

Bây giờ chúng ta 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.

ví dụ 1

Trong ví dụ này, chúng ta sẽ thấy

  • Cách một ngăn xếp được tạo.
  • Cách hiển thị các phần tử của ngăn xếp 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){Stack st = new Stack();st.Push(1);st.Push(2);st.Push(3);foreach (Object obj in st){Console.WriteLine(obj);}Console.WriteLine(); Console.WriteLine();Console.WriteLine("The number of elements in the stack " +st.Count);Console.WriteLine("Does the stack contain the elements 3 "+st.Contains(3));Console.ReadKey();}}}

Giải thích mã: -

  1. Bước đầu tiên được sử dụng để khai báo Stack. Ở đây chúng tôi đang khai báo "st" như một biến để chứa các phần tử của ngăn xếp của chúng tôi.
  2. Tiếp theo, chúng tôi thêm 3 phần tử vào ngăn xếp của chúng tôi. Mỗi phần tử được thêm vào thông qua phương thức Đẩy.
  3. Bây giờ vì các phần tử của ngăn xếp 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 ngăn xếp. Đối tượng (obj) là một biến tạm thời, được khai báo để giữ từng phần tử của ngăn xếp. Sau đó, chúng tôi sử dụng câu lệnh foreach để đi qua từng phần tử của ngăn xếp. Đối với mỗi phần tử ngăn xếp, giá trị được gán cho biến obj. Sau đó, chúng tôi sử dụng lệnh Console.Writeline để hiển thị giá trị cho bảng điều khiển.
  4. Chúng tôi đang sử dụng thuộc tính Count ( st.count ) để lấy số lượng mục trong ngăn xếp. 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.
  5. Sau đó, chúng tôi sử dụng phương thức Chứa để xem liệu giá trị của 3 có trong ngăn xếp 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ằng các phần tử của ngăn xếp được hiển thị. 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 ngăn xếp.

Lưu ý : Bạn đã nhận thấy rằng phần tử cuối cùng được đẩy lên ngăn xếp được hiển thị đầu tiên. Đây là phần tử trên cùng của ngăn xếp. Số lượng các phần tử ngăn xếp cũng được hiển thị trong đầu ra.

Ví dụ 2

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ần thiết để xóa phần tử trên cùng khỏi ngăn xếp.

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){Stack st = new Stack();st.Push(1);st.Push(2);st.Push(3);st.Pop();foreach (Object obj in st){Console.WriteLine(obj);}Console.ReadKey();}}}

Giải thích mã: -

  1. Ở đây chúng tôi chỉ đưa ra phương thức pop được sử dụng để xóa một phần tử khỏi ngăn xếp.

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:

Chúng ta có thể thấy rằng phần tử 3 đã bị xóa khỏi ngăn xếp.

Tóm lược

  • Một ngăn xếp dựa trên khái niệm cuối cùng trong lần xuất trước. Thao tác thêm một phần tử vào ngăn xếp được gọi là thao tác đẩy. Thao tác xóa một phần tử vào ngăn xếp được gọi là thao tác bật.