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