![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Cấu trúc dữ liệu và giải thuật stack
Số trang: 15
Loại file: ppt
Dung lượng: 138.00 KB
Lượt xem: 16
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Đị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ột ngăn xếp là một cấu trúc dữ liệu dạng thùng chứa (container) của các phần tử (thường gọi là các nút (node)) và có hai phép toán cơ bản : push and pop. Push bổ sung một phần tử vào đỉnh (top) của ngăn xếp, nghĩa là sau các phần tử đã có trong ngăn xếp. Pop...
Nội dung trích xuất từ tài liệu:
Cấu trúc dữ liệu và giải thuật stack 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. 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 Procedure pop(var s: stack, var x: item); 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. 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: 1 a1 2 a2 . . . top an max Const max = N; Type Item =.......; Stack = record Top: 0...max; Element array[1..max] of Item; End; Var S: stack; - 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; 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; Biểu diễn phép toán PUSH trên hình vẽ sau: 1 a1 1 a1 1 a1 2 a2 2 a2 2 a2 . . . . . . . . . top an n an an n top x top max max max 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; 5. Cài đặt ngăn xếp bởi danh sách liên kết S an an-1 a1 ... Type Stack = ^cell; Cell = record Infor: Item; Next: Stack; End; Var S: Stack; - 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; S X ... P 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; s … an an-1 a1 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); end; End;
Nội dung trích xuất từ tài liệu:
Cấu trúc dữ liệu và giải thuật stack 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. 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 Procedure pop(var s: stack, var x: item); 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. 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: 1 a1 2 a2 . . . top an max Const max = N; Type Item =.......; Stack = record Top: 0...max; Element array[1..max] of Item; End; Var S: stack; - 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; 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; Biểu diễn phép toán PUSH trên hình vẽ sau: 1 a1 1 a1 1 a1 2 a2 2 a2 2 a2 . . . . . . . . . top an n an an n top x top max max max 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; 5. Cài đặt ngăn xếp bởi danh sách liên kết S an an-1 a1 ... Type Stack = ^cell; Cell = record Infor: Item; Next: Stack; End; Var S: Stack; - 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; S X ... P 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; s … an an-1 a1 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); end; End;
Tìm kiếm theo từ khóa liên quan:
cấu trúc ngăn xếp đặc điểm ngăn xếp ngăn xếp móc nối ứng dụng ngăn xếp lưu trữ của ngăn xếp cấu trúc dữ liệuTài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 329 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 175 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 159 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 141 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 132 0 0 -
Ứng dụng và cài đặt cấu trúc dữ liệu bằng C: Phần 1
338 trang 84 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 82 0 0 -
49 trang 77 0 0
-
54 trang 72 0 0