• HÃY CÙNG TẠO & THẢO LUẬN CÁC CHỦ ĐỀ KIẾN THỨC [Vn Kiến Thức] - Định hướng VnKienthuc.com
    -
    Mọi kiến thức & Thông tin trên VnKienthuc chỉ mang tính chất tham khảo, Diễn đàn không chịu bất kỳ trách nhiệm liên quan
    - VnKienthuc tạm khóa đăng ký tài khoản tự động để hạn chế SEO bẩn, SPAM, quảng cáo. Chưa đăng ký, KHÁCH vẫn có thể đọc và bình luận.

Chia Sẻ Tìm hiểu về lớp Stack trong C#

uocmo_kchodoi

Moderator
Xu
0
Lớp Stack trong C# biểu diễn một tập hợp Last-in, First-out của các đối tượng.

Nó được sử dụng khi bạn cần truy cập các item theo dạng Last-in, First-out. Khi bạn thêm một item vào trong danh sách, nó được gọi là pushing và khi bạn gỡ bỏ một item, nó được gọi làpopping.

Ghi chú: Stack: ngăn xếp, push: thêm nút mới vào đỉnh stack, pop: thao tác lấy 1 phần tử từ đỉnh stack.

Phương thức và Thuộc tính của lớp Stack trong C#

*Thuộc tính được sử dụng phổ biến của lớp Stack trong C#:

Count: Lấy số phần tử được chứa trong Stack

*Bảng dưới liệt kê các phương thức được sử dụng phổ biến của lớp Stack trong C#:

1. public virtual void Clear();
Gỡ bỏ tất cả phần tử từ Stack

2. public virtual bool Contains(object obj);
Gỡ bỏ tất cả phần tử từ Stack

3. public virtual object Peek();
Trả về một đối tượng tại trên cùng của Stack mà không gỡ bỏ nó

4. public virtual object Pop();
Gỡ bỏ và trả về đối tượng tại trên cùng của Stack

5. public virtual void Push(object obj);
Chèn một object tại trên cùng của Stack

6. public virtual object[] ToArray();
Sao chép Stack tới một mảng mới

Ví dụ
Dưới đây là ví dụ minh họa các thuộc tính và phương thức của lớp Stack trong C#:

using System;
using System.Collections;
namespace VietJackCsharp
{
class TestCsharp
{
static void Main(string[] args)
{
Console.WriteLine("Vi du minh hoa Stack trong C#");
Console.WriteLine("-------------------------------------");
SortedList ht = new SortedList();

Stack st = new Stack();

st.Push('A');
st.Push('M');
st.Push('G');
st.Push('W');

Console.WriteLine("1 - Hien thi Stack hien tai: ");
foreach (char c in st)
{
Console.Write(c + " ");
}

Console.WriteLine();

st.Push('V');
st.Push('H');
Console.WriteLine("Gia tri co the pop tiep theo trong Stack la: {0}", st.Peek());
Console.WriteLine("2 - Hien thi Stack hien tai: ");
foreach (char c in st)
{
Console.Write(c + " ");
}

Console.WriteLine();

Console.WriteLine("Xoa cac gia tri!!!");
st.Pop();
st.Pop();
st.Pop();

Console.WriteLine("3 - Hien thi Stack hien tai: ");
foreach (char c in st)
{
Console.Write(c + " ");
}
Console.ReadKey();
}
}
}
Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:

stack.PNG
 
Sửa lần cuối bởi điều hành viên:
Lớp Stack trong C# biểu diễn một tập hợp Last-in, First-out của các đối tượng.

Nó được sử dụng khi bạn cần truy cập các item theo dạng Last-in, First-out. Khi bạn thêm một item vào trong danh sách, nó được gọi là pushing và khi bạn gỡ bỏ một item, nó được gọi làpopping.

Ghi chú: Stack: ngăn xếp, push: thêm nút mới vào đỉnh stack, pop: thao tác lấy 1 phần tử từ đỉnh stack.

Phương thức và Thuộc tính của lớp Stack trong C#

*Thuộc tính được sử dụng phổ biến của lớp Stack trong C#:

Count: Lấy số phần tử được chứa trong Stack

*Bảng dưới liệt kê các phương thức được sử dụng phổ biến của lớp Stack trong C#:

1. public virtual void Clear();
Gỡ bỏ tất cả phần tử từ Stack


2. public virtual bool Contains(object obj);
Gỡ bỏ tất cả phần tử từ Stack


3. public virtual object Peek();
Trả về một đối tượng tại trên cùng của Stack mà không gỡ bỏ nó


4. public virtual object Pop();
Gỡ bỏ và trả về đối tượng tại trên cùng của Stack


5. public virtual void Push(object obj);
Chèn một object tại trên cùng của Stack


6. public virtual object[] ToArray();
Sao chép Stack tới một mảng mới


Ví dụ
Dưới đây là ví dụ minh họa các thuộc tính và phương thức của lớp Stack trong C#:


using System;
using System.Collections;
namespace VietJackCsharp
{
class TestCsharp
{
static void Main(string[] args)
{
Console.WriteLine("Vi du minh hoa Stack trong C#");
Console.WriteLine("-------------------------------------");
SortedList ht = new SortedList();


Stack st = new Stack();

st.Push('A');
st.Push('M');
st.Push('G');
st.Push('W');


Console.WriteLine("1 - Hien thi Stack hien tai: ");
foreach (char c in st)
{
Console.Write(c + " ");
}


Console.WriteLine();

st.Push('V');
st.Push('H');
Console.WriteLine("Gia tri co the pop tiep theo trong Stack la: {0}", st.Peek());
Console.WriteLine("2 - Hien thi Stack hien tai: ");
foreach (char c in st)
{
Console.Write(c + " ");
}


Console.WriteLine();

Console.WriteLine("Xoa cac gia tri!!!");
st.Pop();
st.Pop();
st.Pop();


Console.WriteLine("3 - Hien thi Stack hien tai: ");
foreach (char c in st)
{
Console.Write(c + " ");
}
Console.ReadKey();
}
}
}
Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.


Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:

stack.PNG
Thật tuyệt vời
 
Stack (ngăn xếp) đơn giản chỉ là một danh sách mà việc thêm và xóa các phần tử chỉ diễn ra ở một đầu của danh sách. Stack được thiết kế theo nguyên lý Last-In-First-Out (LIFO), nghĩa là vào sau, ra trước. Phần tử nào được thêm vào sau cùng sẽ là phần tử được lấy ra đầu tiên.

Bạn có thể bắt gặp trong cuộc sống rất nhiều hình ảnh của Stack. Ví dụ điển hình là băng đạn của súng ngắn, bạn chỉ có thể thêm đạn vào một đầu và cũng chỉ có thể lấy đạn ra ở chính đầu đó. Muốn lấy một viên đạn ở dưới, bạn phải lấy tất cả các viên đạn ở trên cùng ra trước. Một hình ảnh khác về Stack là các đồng xu được xếp chồng lên nhau hay một chồng đĩa CD.
 
CHAT
  1. No shouts have been posted yet.

Chủ đề mới

VnKienthuc lúc này

Không có thành viên trực tuyến.

Định hướng

Diễn đàn VnKienthuc.com là nơi thảo luận và chia sẻ về mọi kiến thức hữu ích trong học tập và cuộc sống, khởi nghiệp, kinh doanh,...
Top