1. Trang chủ
  2. » Giáo án - Bài giảng

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

15 466 2
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
Chuyên ngành Cấu Trúc Dữ Liệu Và Giải Thuật
Thể loại Bài giảng
Định dạng
Số trang 15
Dung lượng 138 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 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... Các phép toán trên danh sách1 khởi tạo danh sách rỗn

Trang 1

Ngăn Xếp

1 Định nghĩa

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 Các 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 tử này cho x

Trang 3

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

Trang 4

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

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

2 a2

top an

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:Item, 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ẽ sau :

.

max

.

top

max

.

top x

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

Type Stack = ^cell;

Cell = record

Infor: Item;

Next: Stack;

End;

an S

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

X

P

Trang 13

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

Begin

New(P);

P^.Info := X;

p^.Next := S;

S := P;

ok:= true;

End;

Trang 14

… s

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 := S^.Info;

S := S^.Next;

OK := True;

Dispose(P);

Ngày đăng: 15/09/2013, 04:10

HÌNH ẢNH LIÊN QUAN

Ngăn xếp S=(a1, a2, ... an) được biểu diễn bởi mảng như hình sau: - cấu trúc dữ liệu và giải thuật stack
g ăn xếp S=(a1, a2, ... an) được biểu diễn bởi mảng như hình sau: (Trang 4)
Biểu diễn phép toán PUSH trên hình vẽ sau: - cấu trúc dữ liệu và giải thuật stack
i ểu diễn phép toán PUSH trên hình vẽ sau: (Trang 8)

TỪ KHÓA LIÊN QUAN

w