通过键盘读取元素建立顺序栈,给定一个元素,将此元素压入此栈中,将栈顶元素弹出此栈,用c语言
时间: 2024-10-25 19:13:02 浏览: 16
在C语言中,我们可以使用数组作为基础数据结构来实现一个简单的顺序栈。下面是一个基本的示例,展示了如何操作栈:
```c
#include <stdio.h>
#define MAX_SIZE 100 // 栈的最大容量
typedef struct {
int data[MAX_SIZE]; // 栈的元素存储区
int top; // 栈顶指针
} Stack;
// 初始化栈
void init(Stack* stack) {
stack->top = -1;
}
// 判断栈是否已满
int isFull(Stack* stack) {
return stack- 1;
}
// 判断栈是否为空
int isEmpty(Stack* stack) {
return stack->top == -1;
}
// 入栈 (压栈)
void push(Stack* stack, int value) {
if (isFull(stack)) {
printf("Stack is full.\n");
return;
}
stack->data[++stack->top] = value;
printf("Pushed element %d onto the stack.\n", value);
}
// 出栈 (弹栈)
int pop(Stack* stack) {
if (isEmpty(stack)) {
printf("Stack is empty.\n");
return -1; // 返回特殊值表示栈空
}
return stack->data[stack->top--];
}
int main() {
Stack myStack;
init(&myStack);
// 示例操作
push(&myStack, 5);
push(&myStack, 10);
push(&myStack, 15); // 现在栈顶元素是15
int poppedElement = pop(&myStack); // 弹出栈顶元素
if (poppedElement != -1) {
printf("Popped element from stack: %d\n", poppedElement);
}
return 0;
}
```
阅读全文