在C語言中,可以使用數組來實現堆棧的功能。堆棧是一種“后進先出”(Last-In-First-Out,LIFO)的數據結構,只允許在一端進行插入和刪除操作,這一端被稱為棧頂。
以下是使用數組實現堆棧的基本步驟:
以下是一個使用數組實現堆棧的示例代碼:
#include <stdio.h>
#define MAX_SIZE 100
int stack[MAX_SIZE]; // 堆棧的存儲空間
int top = -1; // 棧頂指針
void push(int data) {
if (top >= MAX_SIZE - 1) {
printf("Stack Overflow\n");
return;
}
stack[++top] = data;
}
int pop() {
if (top < 0) {
printf("Stack Underflow\n");
return -1;
}
return stack[top--];
}
int main() {
push(1);
push(2);
push(3);
printf("%d\n", pop()); // 輸出3
printf("%d\n", pop()); // 輸出2
printf("%d\n", pop()); // 輸出1
printf("%d\n", pop()); // 輸出Stack Underflow
return 0;
}
在這個示例代碼中,我們定義了一個大小為100的數組作為堆棧的存儲空間,并定義了棧頂指針top。push
函數用于插入元素,pop
函數用于刪除元素。在main
函數中,我們先插入三個元素(1、2、3),然后依次刪除元素并輸出結果。當堆棧已滿時,插入元素會輸出"Stack Overflow";當堆棧為空時,刪除元素會輸出"Stack Underflow"。