Câu h i ki m tra

Trình bày cách khai báo m t c u trúc ? ộ ấ

Tr l

iả ờ

typedef struct

{

………………

………………

} tên_c u_trúc; ấ

Bai 1. NGĂN X P (STACK)

̀

CBGD: Tr n Vi

t Khánh

Sau bài h c này, sinh viên có

kh năng:

c đ nh nghĩa ngăn

ượ

 Trình bày đ x p (Stack)

ế

M C TIÊU

 Cài đ t đ

c ngăn x p

ặ ượ

ế

ụ ổ ơ ố

ế ị

 V n d ng ngăn x p vào các bài toán (đ i c s nh phân, kh đ ử ệ qui,...)

I/ Đ nh nghĩa II/ Cài đ t Stack (ngăn

x p)ế

N I DUNG

1. Khai báo c u trúc c a

ấ ế m t ngăn x p

2. Các tác v trên ngăn x p

ế

I/ Đ nh nghĩa

ế

ừ ượ

ộ ấ

c th c hi n ệ ự c đ a vào ư

Stack (ngăn x p) là m t c u trúc tr u t theo c ch LIFO (Last In First Out): ph n t ế ngăn x p sau cùng s đ

ng, đ ượ đ ầ ử ượ c tiên.

c l y ra tr

ẽ ượ ấ

ơ ế

ướ

c cài đ t trên c s m ng (bao g m nhi u ph n

ượ

ơ ở ả

- Stack đ .ử t

- Ch s top đ ch đ nh các ph n t

trong danh sách.

ầ ử

ỉ ố

Hình v minh h a ngăn x p (Stack)

ế

ế II/ Cài đ t Stack (ngăn x p)

và 1 bi n ch s top

ỉ ố

ế

S d ng m ng S đ ch a các ph n t ả đ ch đ nh các ph n t

ầ ử ứ trong m ng S.

ể ầ ử

ử ụ ỉ ể

// Khai báo c u trúc c a m t Stack

typedef struct

{

int top;

int nodes[MAXSIZE];

} stack;

1. Khai báo c u trúc ngăn x p ế ấ

ế 2. Các tác v trên Stack (ngăn x p) ụ

ở ạ ế ỗ

• Kh i t o ngăn x p r ng void CreateStack(stack &s) {

s.top=-1;

}

• Ki m tra ngăn x p có b r ng không ế ị ỗ ể

bool EmptyStack(stack s) {

return ( s.top == -1);

}

vào ngăn x p (Stack) Đ a m t ph n t ộ ầ ử ư ế

void Push(stack &s, int x) {

s.top++; s.nodes[s.top]=x;

}

ra kh i ngăn x p (Stack) ấ ỏ ế

L y m t ph n t ầ ử ộ int Pop(stack &s) {

int x; x=s.nodes[s.top]; s.top --; return x;

}

BÀI T P Ậ

t ch ng trình áp d ng Stack ngăn x p đ đ i m t ươ ể ổ ế ộ

1. Vi ế s nguyên n ra d ng nh phân. ố ụ ị ạ

2. Có th áp d ng Stack (ngăn x p) đ kh đ qui. ử ệ ụ ế ể ể