用c语言通过键盘读取元素建立顺序栈,给定一个元素,将此元素压入此栈中,将栈顶元素弹出此栈,结构简单一点
时间: 2024-10-25 12:13:11 浏览: 18
顺序栈,压栈、弹栈、获得栈顶元素、统计栈中元素个数、打印栈中元素
5星 · 资源好评率100%
在C语言中,我们可以使用数组作为基础数据结构来创建一个简单的顺序栈。以下是基本步骤:
首先,我们定义一个结构体 `Stack` 来表示栈,包含一个整型数组 `items` 存储元素,以及一个 `top` 成员记录栈顶位置:
```c
typedef struct {
int items[STACK_SIZE]; // 栈的大小可以预设,例如 STACK_SIZE = 100
int top; // 栈顶指针
} Stack;
```
接下来,我们需要初始化栈,设置 `top` 初始值为 -1 表示空栈:
```c
Stack stack = { {0}, -1 };
```
然后,我们实现压入元素 (`push`) 的函数,当栈满时拒绝添加新元素:
```c
void push(Stack *s, int value) {
if (s->top == STACK_SIZE - 1) {
printf("Stack is full, cannot push element.\n");
} else {
s->items[++s->top] = value;
}
}
```
接着,我们实现弹出元素 (`pop`) 的函数,如果栈为空则返回错误信息:
```c
int pop(Stack *s) {
if (s->top == -1) {
return -1; // 栈为空,返回错误代码
} else {
return s->items[s->top--];
}
}
```
最后,你可以使用这些函数从键盘输入元素并操作栈:
```c
int main() {
char input;
while ((input = getchar()) != EOF) {
push(&stack, input);
}
if (stack.top != -1) {
int popped_value = pop(&stack);
printf("Popped element: %d\n", popped_value);
}
return 0;
}
```
阅读全文