CU TRÚC NGĂN XP
(STACK)
Bmôn Công nghphn mm
Khoa Công nghthông tin & Truyn thông
Đi hc Cn Thơ
KHÁI NIM NGĂN XP
mt dng danh sách ñc bit mà vic
thêm vào hay xóa phn tchthc hin ti
mt ñu, gi là ñnh ca ngăn xp.
Làm vic theo nguyên tc FILO(First In Last
Out) hay LIFO (Last In First Out)
PHÉP TOÁN TRÊN NGĂN XP
MAKENULL_STACK(S): khi to ngăn xp
rng.
EMPTY_STACK(S): kim tra ngăn xp rng.
TOP(S): phn t ñu tiên trên ñnh ngăn xp.
POP(S): xóa phn t  ñnh ngăn xp.
PUSH(X,S): thêm phn tX vào ñnh ngăn
xp S.
FULL_STACK(S): kim tra ngăn xp ñy.
CÀI ĐT NGĂN XP BNG MNG
Mô hình lưu tr:
Khai báo:
#define … MaxLength
typedef … ElementType;
typedef struct {
ElementType Elements[MaxLength];
int top_index;
} Stack;
Stack S;
elements
top_index
0
1
.
.
.
maxlength - 1
CÀI ĐT NGĂN XP BNG MNG
Khi to ngăn xp rng:
void MakeNull_Stack(Stack *S){
S->top_index = MaxLength;
}
elements
top_index
0
1
.
.
.
maxlength - 1