
1
Các c u trúc d li u trong C#ấ ữ ệ
I. Xây d ng c u trúc d li u trong C#ự ấ ữ ệ
1. Stack
2. Queue.
II. Collections
1. Các l p và giao di n th ng s d ng trong ớ ệ ườ ử ụ
namespace: System.Collections và
System.Collections.Generic.
2. S d ng các ph ng th c và thu c tính c a l p: ử ụ ươ ứ ộ ủ ớ
ArrayList.

2
1. Stack
- Stack là m t c u trúc theo ki u LIFO (Last In First Out), ộ ấ ể
ph n t vào sau cùng s đ c l y ra tr c.ầ ử ẽ ượ ấ ướ
- Hai thao tác c b n trên Stackơ ả
–Chèn ph n t : Luôn chèn vào đ nh Stack (push)ầ ử ỉ
–L y ra ph n t : Luôn l y ra t đ nh Stack (pop)ấ ầ ử ấ ừ ỉ
- L p Stack thu c namespace ớ ộ System.Collections, bi u ể
di n ngăn x p (LIFO) các đ i t ng non – generic. Đ ễ ế ố ượ ể
s d ng ki u generic dùng ử ụ ể
System.Collections.Generic.Stack<T>.
-L p Stack hi n th c các giao di n ớ ệ ự ệ ICollection,
IEnumerable, ICloneable.

3
Ví d s d ng Stackụ ử ụ
namespace DataStructures
{
class Program
{
static void Main(string[] args)
{
int [] a = {10,20,30};
Stack s = new Stack(a);
s.Push(1);
s.Push("abccd");
Console.WriteLine(s.Count);
Console.ReadLine();
}
}
}

4
L u ý v Stack Classư ề
-Capacity là s l ng các ph n t mà stack có th ch a. ố ượ ầ ử ể ứ
Stack có th ch a các ph n t có ki u d li u khác ể ứ ầ ử ể ữ ệ
nhau. Thu c tính Count đ ch s ph n t hi n trong ộ ể ỉ ố ầ ử ệ
Stack.
-Khi 1 ph n t đ c thêm vào (Push), capacity t đ ng ầ ử ượ ự ộ
tăng, và t ch c l i b nh . N u Count< Capacity thì ổ ứ ạ ộ ớ ế
Push có s phép toán là O(1), ng c l i là O(n) (n = ố ượ ạ
Count). Pop có s phép toán là O(1).ố
-Stack cho phép chèn ph n t null, ho c các ph n t có ầ ử ặ ầ ử
giá tr b ng nhau.ị ằ

5
Stack Class In C#
- Contructor
Tên Mô tả
Stack() Kh i t o Stack tr ng, capacity ban đ u ở ạ ố ầ
m c đ nh.ặ ị
Stack(ICollection) Kh i t o Stack ch a các ph n t copy t ở ạ ứ ầ ử ừ
m t t p h p (m ng), capacity ban đ u ộ ậ ợ ả ầ
b ng s ph n t đ c copy.ằ ố ầ ử ượ
Stack(Int32) Kh i t o Stack tr ng, capacity ban đ u ở ạ ố ầ
b ng giá tr truy n vào. (Dùng Contructor ằ ị ề
này t t nh t) ố ấ WHY?