1
Các c u trúc d li u trong C#
I. Xây d ng c u tc 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 ngc 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
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 o. (Dùng Contructor
y t t nh t) WHY?