Ngăn xếp
lượt xem 54
download
Phép toán 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 ở một đầu gọi là đỉnh ngăn xếp...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Ngăn xếp
- NGĂN XẾP STACK
- 3.4 CẤU TRÚC NGĂN XẾP Khái niệm, đặc điểm Lưu trữ kế tiếp của ngăn xếp Ngăn xếp móc nối Ứng dụng của ngăn xếp 2/36
- 3.4.1 Khái niệm, đặc điểm ngăn xếp Khái niệm Là một danh sách tuyến tính Phép toán bổ sung một phần Đỉnh D tử vào ngăn xếp hoặc lấy một C phần tử ra khỏi ngăn xếp chỉ B A thực hiện ở một đầu gọi là Đáy đỉnh ngăn xếp Hình ảnh ngăn xếp 3/36
- 3.4.1 Khái niệm, đặc điểm ngăn xếp Phần tử đưa vào ngăn xếp sau sẽ được lấy ra xử lí trước, phần tử đưa vào ngăn xếp trước sẽ được lấy ra xử lí sau. Được gọi là danh sách LIFO (Last - In - First - Out) 4/36
- 3.4.2 Lưu trữ kế tiếp của ngăn xếp Định nghĩa và khai báo cấu trúc dữ liệu Định nghĩa các phép toán và chương trình th ực hiện các phép toán cơ bản 5/36
- Định nghĩa và khai báo cấu trúc dữ liệu Ngăn xếp mảng là một bản ghi gồm có hai trường Trường 1 : là một số nguyên biểu diễn số phần tử có trong ngăn xếp Trường 2 : Là mảng một chiều có kích thước đủ lớn để lưu các phần tử của ngăn xếp 6/36
- Định nghĩa và khai báo cấu trúc dữ liệu Khai báo cấu trúc : const max= ; struct stack { int top ; ptu[max] ; }s; 7/36
- Định nghĩa và khai báo cấu trúc dữ liệu max -1 Chưa có phần tử … D 3 C 2 Ngăn xếp B 1 A 0 Mảng lưu trữ ngăn xếp s 8/36
- Các phép toán cơ bản Khởi tạo danh sách rỗng : creat(s) Kiểm tra danh sách rỗng : empty(s) Kiểm tra danh sách đầy : full(s) Chèn phần tử x vào đỉnh của ngăn xếp : push(x,s) Loại phần tử đỉnh của ngăn xếp gán cho x : pop(s,x) 9/36
- Các phép toán cơ bản Khởi tạo ngăn xếp rỗng max -1 void creat(stack &s) … { s.top = 0; 4 } 3 2 Kiểm tra ngăn xếp rỗng 1 int empty(stack s) 0 { top = 0 return s.top == 0 ; Ngăn xếp rỗng } 10/36
- Các phép toán cơ bản G max -1 top = max F Kiểm tra ngăn xếp đầy … 3 D int full(stack s) C 2 { B 1 A 0 return s.top == max ; s } Ngăn xếp đầy 11/36
- Các phép toán cơ bản Bổ sung phần tử x vào đỉnh ngăn xếp s max=7 6 6 6 5 5 5 X X 4 4 4 D D 3 3 D 3 C C 2 C 2 2 B B B top =4 1 1 1 top = 5 top = 4 A A A 0 0 0 s s s 12/36
- Các phép toán cơ bản Bổ sung phần tử x vào đỉnh ngăn xếp s void push( x, stack &s) { if (!full(s)) s.ptu[s.top++]=x; } 13/36
- Các phép toán cơ bản Loại phần tử ở đỉnh ngăn xếp s gán cho x max=7 6 6 5 5 x x D 4 4 D 3 3 C 2 C 2 B B 1 1 top = 4 top = 3 A A 0 0 s s 14/36
- Các phép toán cơ bản Loại phần tử ở đỉnh ngăn xếp s gán cho x void pop(stack &s, &x) { if (s.top>0) x=s.ptu[--s.top]; } 15/36
- 3.4.3 Lưu trữ móc nối của ngăn xếp Định nghĩa và khai báo cấu trúc dữ liệu Định nghĩa các phép toán và chương trình th ực hiện các phép toán cơ bản 16/36
- Định nghĩa và khai báo CTDL Mỗi phần tử của ngăn xếp móc nối là một bản ghi gồm có 2 trường data next data chứa thông tin của phần tử next là một con trỏ,trỏ vào nút đứng sau trong ngăn xếp 17/36
- Định nghĩa và khai báo CTDL Ngăn xếp được định nghĩa là một con trỏ tr ỏ vào ph ần tử đỉnh của ngăn xếp NULL an … a2 a1 s Con trỏ next của phần tử đáy ngăn xếp nhận giá trị NULL báo hiệu kết thúc ngăn xếp 18/36
- Định nghĩa và khai báo CTDL Khai báo cấu trúc ngăn xếp móc nối : struct node { ptu; node *next; } *s ; 19/36
- Các phép toán cơ bản Khởi tạo ngăn xếp rỗng : creat(s) Kiểm tra ngăn xếp rỗng : empty(s) Chèn phần tử x vào đỉnh ngăn xếp : push(x,s) Loại bỏ một phần tử khỏi danh sách : pop(s,x) 20/36
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài thực hành số 3: Ngăn xếp – Thủ tục – Macro
7 p | 357 | 115
-
CHƯƠNG 6: NGĂN XẾP
19 p | 215 | 81
-
Bài giảng Kỹ thuật lập trình: Ngăn xếp & Hàng đợi - GV. Hà Đại Dương
15 p | 225 | 13
-
Bài giảng Cấu trúc ngăn xếp (Stack)
10 p | 87 | 10
-
Bài giảng Cấu trúc dữ liệu - Chương 5: Ngăn xếp - Hàng đợi
92 p | 73 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Ngăn xếp và hàng đợi - TS. Trần Ngọc Việt
17 p | 26 | 6
-
Chương 2 " Ngăn xếp"
20 p | 78 | 5
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Ngăn xếp và hàng đợi - Phan Mạnh Hiển (2020)
34 p | 78 | 5
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu ngăn xếp với hàng đợi - Bùi Tiến Lên
33 p | 31 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Ngăn xếp và hàng đợi - Nguyễn Mạnh Hiển (HKI năm 2020-2021)
36 p | 50 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 9: Ngăn xếp - Stacks
24 p | 32 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Thuật toán 2 ngăn xếp của Dijkstra - TS. Đào Nam Anh
43 p | 96 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Ngăn xếp - TS. Đào Nam Anh
69 p | 56 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Ngăn xếp và hàng đợi - Nguyễn Mạnh Hiển
33 p | 69 | 4
-
Bài giảng Cấu trúc dữ liệu: Ngăn xếp - TS. Lê Minh Trung & Th.S Lương Trần Ngọc Khiết
44 p | 19 | 3
-
Bài giảng Kỹ thuật lập trình: Ngăn xếp và hàng đợi - Nguyễn Minh Huy
26 p | 7 | 3
-
Bài giảng Cơ sở dữ liệu giải thuật: Bài 6 - Ngăn xếp
17 p | 61 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn