Stack là gì?
- ★
- ★
- ★
- ★
- ★
Stack là một tập hợp các chương trình được thiết kế để hoạt động cùng nhau. Ví dụ các stack như LAMP, WAMP và MEAN. Xem thêm software stack để hiểu rõ thuật ngữ này.
- ★
- ★
- ★
- ★
- ★
Trong lập trình máy tính, ngăn xếp (stack) là một cấu trúc dữ liệu (data structure) hoạt động theo nguyên lý "vào sau ra trước" (Last In First Out (LIFO). Khi một mục (item) mới được thêm vào ngăn xếp (stack), nó được gọi là "push" mục đó lên ngăn xếp (stack). Khi mục dữ liệu gần đây nhất được truy xuất và xóa khỏi cấu trúc, nó được gọi là "pop" mục khỏi ngăn xếp (stack). Các phép toán "push" và "pop" chỉ xảy ra ở trên cùng của ngăn xếp và có thể áp dụng cho một mảng (array) nếu mục được thêm hoặc xóa nằm ở cuối mảng. Bên dưới là code ngăn xếp trong C:
#include
int MAXSIZE = 8;
int stack[8];
int top = -1;
int isempty() {
if(top == -1)
return 1;
else
return 0;
}
int isfull() {
if(top == MAXSIZE)
return 1;
else
return 0;
}
int peek() {
return stack[top];
}
int pop() {
int data;
if(!isempty()) {
data = stack[top];
top = top - 1;
return data;
} else {
printf("Could not retrieve data, Stack is empty.\n");
}
}
int push(int data) {
if(!isfull()) {
top = top + 1;
stack[top] = data;
} else {
printf("Could not insert data, Stack is full.\n");
}
}
int main() {
// push items on to the stack
push(3);
push(5);
push(9);
push(1);
push(12);
push(15);
printf("Element at top of the stack: %d\n" ,peek());
printf("Elements: \n");
// print stack data
while(!isempty()) {
int data = pop();
printf("%d\n",data);
}
printf("Stack full: %s\n" , isfull()?"true":"false");
printf("Stack empty: %s\n" , isempty()?"true":"false");
return 0;
}
Output của chương trình:
Element at top of the stack: 15
Elements:
15
12
1
9
5
3
Stack full: false
Stack empty: true
- ★
- ★
- ★
- ★
- ★
Stack là một phần bộ nhớ của máy tính được sử dụng để lưu trữ dữ liệu. Cụ thể là stack được sử dụng để lưu trữ các biến cục bộ (local variable) của chương trình khi chúng được khai báo. Ngoài ra, các biến và mảng là tham số của hàm bao gồm cả hàm main cũng được cấp phát bộ nhớ stack. Các stack tăng trưởng từ địa chỉ cao đến địa chỉ thấp.
- ★
- ★
- ★
- ★
- ★
Thuật ngữ stack đề cập đến chồng giao thức (protocol) nghĩa là bao gồm nhiều giao thức mạng hoạt động cùng nhau.
Learning English Everyday