1. Trang chủ
  2. » Công Nghệ Thông Tin

CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - NGĂN XẾP potx

13 394 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 397 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

KHÁI NIỆM NGĂN XẾP Là một danh sách tuyến tính  Bổ sung một phần tử vào ngăn xếp hoặc lấy một phần tử ra khỏi ngăn xếp chỉ thực hiện ở B C Đáy Hình ảnh ngăn xếp Item... BIỂU DIỄN CẤ

Trang 1

NGĂN XẾP

STACK

Trang 2

KHÁI NIỆM NGĂN XẾP

 Là một danh sách tuyến tính

 Bổ sung một phần tử vào ngăn

xếp hoặc lấy một phần tử ra

khỏi ngăn xếp chỉ thực hiện ở

B C

Đáy

Hình ảnh ngăn xếp

Item

Trang 3

BIỂU DIỄN CẤU TRÚC DỮ LIỆU

 N là độ dài của ngăn xếp

 Item là kiểu dữ liệu của các phần tử

 Ngăn xếp là một cấu trúc gồm 2 thành phần

 Biến top lưu chỉ số của phần tử mảng lưu phần tử ở

đỉnh ngăn xếp

 Mảng E lưu các phần tử của ngăn xếp

#define Max N //Định nghĩa kiểu Item

struct Stack{

Item E[Max] ; int top ;

} ;

Stack S ; //Khai báo ngăn xếp S

Trang 4

BIỂU DIỄN CẤU TRÚC DỮ LIỆU

D C B A

0 1 2 top=3 Max=7

E

Ngăn xếp Chưa có

Mảng lưu trữ ngăn xếp

6

Trang 5

BIỂU DIỄN CẤU TRÚC DỮ LIỆU

 N là độ dài của ngăn xếp

 Item là kiểu dữ liệu của các phần tử

 Ngăn xếp là một bản ghi gồm hai trường

 Biến top lưu chỉ số của phần tử mảng lưu phần tử ở

đỉnh ngăn xếp

 Mảng E lưu các phần tử của ngăn xếp

Const Max = N ; Type Stack = Record

E : Array[1 Max] Of Item ; top : 0 Max ;

End ; Var S : Stack ; {Khai báo ngăn xếp S}

Trang 6

BIỂU DIỄN CẤU TRÚC DỮ LIỆU

#define Max 100 struct Hoc_sinh{

char ho_ten[25];

int tuoi;

float dtb;

};

struct Stack{

Hoc_sinh E[Max];

int top;

};

Stack S;

Ví dụ: Ngăn xếp chứa thông tin học sinh

Trang 7

CÁC PHÉP TOÁN TRÊN NX

 Khởi tạo ngăn xếp rỗng

void Initialize (Stack &S)

{

S.top = -1;

}

 Kiểm tra ngăn xếp rỗng

int Empty (Stack S)

{

return (S.top == -1);

}

0 1 2 3 Max=7

E

4 5

Ngăn xếp rỗng

top = -1

6

Trang 8

CÁC PHÉP TOÁN TRÊN NX

 Kiểm tra ngăn xếp đầy

int Full (Stack S)

{

return (S.top == Max-1);

}

0 1 2 3 Max=7

E

G F E D C B A

4 5

Ngăn xếp đầy

top = Max-1

6

Trang 9

CÁC PHÉP TOÁN TRÊN NX

Bổ sung một phần tử X vào đỉnh ngăn xếp S

0 1 2 Max=7

E

D C B A

4

5

top = 4

0 1 2 3 Max=7

E

D C B A

5

top 3

X

top = 4

0 1 2 3

E

X

D C B A

5

Max=7

6

Trang 10

CÁC PHÉP TOÁN TRÊN NX

Bổ sung một phần tử vào đỉnh ngăn xếp S

int PUSH (Stack &S, Item X)

{

if ( Full(S)) return 0;

else {

S.top++;

S.E[S.top] = X;

return 1;

} }

Trang 11

CÁC PHÉP TOÁN TRÊN NX

Lấy một phần tử ở đỉnh ngăn xếp S

0

1

2

Max=7

E

D C B A

4

5

top = 2

0 1

4 3 Max=7

E

C B A

5

top = 3

D

Trang 12

CÁC PHÉP TOÁN TRÊN NX

Lấy một phần tử ở đỉnh ngăn xếp S

Int POP (Stack &S, Item &Y)

{

if (Empty(S))

return 0;

else {

Y = S.E[S.top];

S.top ;

return 1;

} }

Trang 13

CÁC PHÉP TOÁN TRÊN NX

Ví dụ ứng dụng

Viết chương trình:

- Nhập số nguyên dương N

- Đổi số N sang dạng mã nhị phân tương ứng của nó.

- In kết quả ra màn hình

Ngày đăng: 29/03/2014, 00:20

HÌNH ẢNH LIÊN QUAN

Hình ảnh ngăn xếp - CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - NGĂN XẾP potx
nh ảnh ngăn xếp (Trang 2)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w