在C語言中,可以通過以下步驟來創建一個棧:
typedef struct {
int maxSize; // 棧的最大容量
int top; // 當前棧頂元素的索引
int* stackArray; // 存儲棧元素的數組
} Stack;
void initStack(Stack* stack, int maxSize) {
stack->maxSize = maxSize;
stack->top = -1;
stack->stackArray = (int*)malloc(maxSize * sizeof(int));
}
void push(Stack* stack, int element) {
if (stack->top == stack->maxSize - 1) {
printf("棧已滿,無法入棧\n");
return;
}
stack->stackArray[++(stack->top)] = element;
}
int pop(Stack* stack) {
if (stack->top == -1) {
printf("棧已空,無法出棧\n");
return -1;
}
return stack->stackArray[(stack->top)--];
}
int top(Stack* stack) {
if (stack->top == -1) {
printf("棧已空\n");
return -1;
}
return stack->stackArray[stack->top];
}
int main() {
Stack stack;
int maxSize = 10; // 假設棧的最大容量為10
initStack(&stack, maxSize); // 初始化棧
// 入棧
push(&stack, 1);
push(&stack, 2);
push(&stack, 3);
// 出棧
printf("%d\n", pop(&stack)); // 輸出3
printf("%d\n", pop(&stack)); // 輸出2
// 獲取棧頂元素
printf("%d\n", top(&stack)); // 輸出1
return 0;
}
以上代碼演示了如何創建一個棧,并進行入棧、出棧、獲取棧頂元素的操作。