Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
83,92 KB
Nội dung
Please purchase a personal license STACK KHÁI NIỆM NGĂN XẾP Là danh sách tuyến tính Bổ sung phần tử vào ngăn D xếp lấy phần tử C khỏi ngăn xếp thực đầu gọi đỉnh ngăn xếp Đỉnh B Item A Đáy Hình ảnh ngăn xếp BIỂU DIỄN CẤU TRÚC DỮ LIỆU #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 N độ dài ngăn xếp Item kiểu liệu phần tử Ngăn xếp cấu trúc gồm thành phần Biến top lưu số phần tử mảng lưu phần tử đỉnh ngăn xếp Mảng E lưu phần tử ngăn xếp BIỂU DIỄN CẤU TRÚC DỮ LIỆU Max=7 Chưa có top=3 D C B A Ngăn xếp E Mảng lưu trữ ngăn xếp BIỂU DIỄN CẤU TRÚC DỮ LIỆU Const Max = N ; Type Stack = Record E : Array[1 Max] Of Item ; top : Max ; End ; Var S : Stack ; {Khai báo ngăn xếp S} N độ dài ngăn xếp Item kiểu liệu phần tử Ngăn xếp ghi gồm hai trường Biến top lưu số phần tử mảng lưu phần tử đỉnh ngăn xếp Mảng E lưu phần tử ngăn xếp BIỂU DIỄN CẤU TRÚC DỮ LIỆU Ví dụ: Ngăn xếp chứa thông tin học sinh #define Max 100 struct Hoc_sinh{ char ho_ten[25]; int tuoi; float dtb; }; struct Stack{ Hoc_sinh E[Max]; int top; }; Stack S; CÁC PHÉP TOÁN TRÊN NX Max=7 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); } E top = -1 Ngăn xếp rỗng CÁC PHÉP TOÁN TRÊN NX Max=7 Kiểm tra ngăn xếp đầy int Full (Stack S) { return (S.top == Max-1); } G F E D C top = Max-1 B A E Ngăn xếp đầy CÁC PHÉP TOÁN TRÊN NX Bổ sung phần tử X vào đỉnh ngăn xếp S Max=7 Max=7 Max=7 6 5 top = top D C B A E X D C B A E top = X D C B A E CÁC PHÉP TOÁN TRÊN NX Bổ sung 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; } } CÁC PHÉP TOÁN TRÊN NX Lấy phần tử đỉnh ngăn xếp S Max=7 Max=7 6 5 4 top = D C B A E D top = C B A E CÁC PHÉP TOÁN TRÊN NX Lấy 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; } } 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 - In kết hình ... (S.top == -1 ); } E top = -1 Ngăn xếp rỗng CÁC PHÉP TOÁN TRÊN NX Max=7 Kiểm tra ngăn xếp đầy int Full (Stack S) { return (S.top == Max-1); } G F E D C top = Max-1 B A E Ngăn xếp đầy CÁC PHÉP TOÁN... ; Type Stack = Record E : Array[1 Max] Of Item ; top : Max ; End ; Var S : Stack ; {Khai báo ngăn xếp S} N độ dài ngăn xếp Item kiểu liệu phần tử Ngăn xếp ghi gồm hai trường Biến top lưu số phần...KHÁI NIỆM NGĂN XẾP Là danh sách tuyến tính Bổ sung phần tử vào ngăn D xếp lấy phần tử C khỏi ngăn xếp thực đầu gọi đỉnh ngăn xếp Đỉnh B Item A Đáy Hình ảnh ngăn xếp BIỂU DIỄN CẤU