Nhảy tới nội dung

Một số phép toán trên Stack

Các phép toán cơ bản

makenullStack

Yêu cầu

Khởi tạo một Stack rỗng.

void makenullStack(Stack *pS)
{
pS->Top_idx = MaxLength;
}

emptyList

Yêu cầu

Kiểm tra Stack rỗng.

int emptyStack(Stack S)
{
return S.Top_idx == MaxLength;
}

fullStack

Yêu cầu

Kiểm tra Stack đầy.

int fullStack(Stack S)
{
return S.Top_idx == 0;
}

top

Yêu cầu

Trả về giá trị của đỉnh Stack.

ElementType top(Stack S)
{
return S.Elements[S.Top_idx];
}

pop

Yêu cầu

Xóa phần tử ở đầu Stack.

void pop(Stack *pS)
{
pS->Top_idx++;
}

push

Yêu cầu

Chèn thêm phần tử vào đỉnh Stack.

void push(ElementType x, Stack *pS)
{
pS->Top_idx--;
pS->Elements[pS->Top_idx] = x;
}

MỘT SỐ PHÉP TOÁN KHÁC (BÀI TẬP TRÊN ELSE)

xoa

Yêu cầu

Xóa phần tử đỉnh.

void xoa(NganXep *pS)
{
if (pS->Dinh == SoPhanTu)
return;
pS->Dinh++;
}

khoitao

Yêu cầu

Khởi tạo Stack rỗng.

void khoitao(NganXep *pS)
{
pS->Dinh = SoPhanTu;
}

them

Yêu cầu

Thêm phần tử vào đỉnh của Stack.

void them(int x, NganXep *pS)
{
if (pS->Dinh == 0)
return;
pS->Dinh--;
pS->DuLieu[pS->Dinh] = x;
}

ktRong

Yêu cầu

Kiểm tra Stack rỗng.

int ktRong(NganXep S)
{
return S.Dinh == SoPhanTu;
}

ktDay

Yêu cầu

Kiểm tra Stack đầy.

int ktDay(NganXep S)
{
return S.Dinh == 0;
}

hienthi

Yêu cầu

Hiển thị Stack.

void hienthi(NganXep *pS)
{
for (int i = pS->Dinh; i < SoPhanTu; i++)
printf("%d ", pS->DuLieu[i]);
}

giatriDinh

Yêu cầu

Trả về giá trị tại đỉnh.

int giatriDinh(NganXep S)
{
return S.DuLieu[S.Dinh];
}