Ngăn xếp (Stack) trong C
Một ngăn xếp là một cấu trúc dữ liệu trừu tượng (Abstract Data Type – viết tắt là ADT), hầu như được sử dụng trong hầu hết mọi ngôn ngữ lập trình. Đặt tên là ngăn xếp bởi vì nó hoạt động như một ngăn xếp trong đời sống thực, ví dụ như một cỗ bài hay một chồng đĩa, …
Chương trình minh họa Ngăn xếp (Stack) trong C
#include <stdio.h> 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("Khong the thu thap du lieu, ngan xep (Stack) la trong.\n"); } } int push(int data) { if(!isfull()) { top = top + 1; stack[top] = data; }else { printf("Khong the chen du lieu, ngan xep (Stack) da day.\n"); } } int main() { // chen cac phan tu vao ngan xep push(3); push(5); push(9); push(1); push(12); push(15); printf("Phan tu tai vi tri tren cung cua ngan xep: %d\n" ,peek()); printf("Cac phan tu: \n"); // in cac phan tu trong ngan xep while(!isempty()) { int data = pop(); printf("%d\n",data); } printf("Ngan xep da day: %s\n" , isfull()?"true":"false"); printf("Ngan xep la trong: %s\n" , isempty()?"true":"false"); return 0; }
Kết quả
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Bài học Cấu trúc dữ liệu và giải thuật phổ biến tại vietjack.com:
- Giải thuật tiệm cận - Asymptotic Algorithms
- Cấu trúc dữ liệu mảng (Array)
- Danh sách liên kết - Linked List
- Cấu trúc dữ liệu ngăn xếp - Stack
- Cấu trúc dữ liệu hàng đợi - Queue
- Tìm kiếm tuyến tính - Linear Search
- Tìm kiếm nhị phân - Binary Search
- Sắp xếp nổi bọt - Bubble Sort
- Sắp xếp chèn - Insertion Sort