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

Cấu trúc dữ liệu và giải thuật stack

15 699 8
Tài liệu được quét OCR, nội dung có thể không chính xác
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

Tiêu đề Cấu Trúc Dữ Liệu Và Giải Thuật Stack
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 15
Dung lượng 294,69 KB

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

Nội dung

Định nghĩa Ngăn xếp là một dạng của danh sách, trong đó phép toán xen một phần tử mới vào danh sách và loại bỏ một phần tử khỏi danh sách chỉ được phép thực hiện ở một đầu của danh sách. Mộ

Trang 1

Ngăn Xếp

1 Định nghĩa

Ngăn xếp là một dạng của danh sách, trong đó phép toán

xen một phần tử mới vào danh sách và loại bỏ một phần tử khỏi danh sách chỉ được phép thực hiện ở một đầu của

danh sách

Trang 2

2 Cac phép toán trên danh sách

1 khởi tạo danh sách rÕỖng

Procedure intialize(var s: stack);

2 kiếm tra ngăn xếp rÕỖng

Function empty (var s: stack):boolean;

3 kiếm tra ngăn xếp đầy

Function full (var s: stack):boolean;

4 Thêm một phần tử x vào đỉnh của ngăn xếp

Procedure push(x: Item, var s: stack)

5 Loại phần tử ở đỉnh của ngăn xếp và gán giá trị của phần

tur nay cho x

Procedure pop(var s: stack, var x: item);

Trang 3

Vi dụ: Nếu S là ngăn xếp, S=(a, a,, a,) và đỉnh của ngăn xếp 6 đầu bên phải khi thực hiện push(x,S) ta được S=(a,, a., a, x) nếu n>=1 thì khi thực hiện pop(S,x) ta được S=(a,, a, a,,)

Và X=a,

Trang 4

4 Cài đặt danh sách bởi máng

Ngăn xếp S= (a,, a., a.) được biểu diễn bởi mảng như hình sau:

top a,

max

Trang 5

Const max = N;

Type Item = ;

Stack = record

Top: 0 max;

Element array[1 max] of Item; End;

Var S: stack;

Trang 6

- - Các thủ tục và hàm thực hiện các phép toán trên ngăn xếp

Procedure initialize(S:Stack);

Begin

s.top: = 0;

end;

function Empty(var S:Stack):boolean;

begin

Empty:=(s.top=0);

End;

Function Full(var S: stack):boolean;

Begin

Full: =(s.top=max);

End;

Trang 7

Procedure push( x:ltem, var S: Stack, var ok : boolean); Begin

With s do

If full(S) then ok:=false

Else

Begin

Top:=top+1;

Elment[top]:=X;

Ok:=true;

End;

End;

Trang 8

Biểu diễn phép toán PUSH trên hình vẽ

1 a, 1 a, 1 a,

2 a, 2 a, 2 a,

top a, n a, ————>y n a

max max

Trang 9

Procdure pop(var S:Stack, var X:Item, var ok:boolean);

Begin

With S do

If empty(S) then ok:= false

Else

Begin

X:=Element|top |;

Top:=top-1;

Ok:=true;

End;

End;

Trang 10

5 Cài đặt ngăn xếp bởi danh sách liên kết

w s

a n ——>- địa —L> eee ——>- a, ——>-

Type Stack = “cell;

Cell = record

Infor: Item;

Next: Stack;

End;

Var S: Stack;

Trang 11

- Các thủ tục và hàm thể hiện phép toán trên ngăn xếp được cài

đặt bởi danh sách liên kết

Procedure initialize(Var S:Stack);

Begin

S := NIL;

end;

Function Empty(VarS:Stack):Boolean;

Begin

Empty := (S = NIL);

End;

Trang 12

> eee

Trang 13

Procedure PUSH(Var S : Stack; X : Item, Var ok : boolean);

Var P : Stack;

Begin

New(P);

PA Info := X;

p’.Next := S;

S := P;

ok:= true;

End;

Trang 14

Ôn-1

Trang 15

Procedure POP(Var S : Stack; Var X : Item; Var OK : Boolean); Var P : Stack;

Begin

If Empty(S) Then OK := False

Else begin

P:=S;

X := SA Info;

S := SA.Next;

OK := True;

Dispose(P);

end;

End;

Ngày đăng: 30/10/2012, 08:56

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w