如何在C语言中实现一个简单的栈数据结构,并说明其在软件设计中的应用?
时间: 2024-10-30 09:19:45 浏览: 16
在C语言中实现一个简单的栈数据结构,通常需要定义一个数组以及一个指向栈顶的指针。栈顶指针用于追踪数组中的最后一个元素,即栈的顶部。以下是使用数组实现栈的基本操作的示例代码:
参考资源链接:[2022全国计算机二级C语言考试真题及答案详解](https://wenku.csdn.net/doc/4qkr4uxzs2?spm=1055.2569.3001.10343)
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10 // 定义栈的最大容量
typedef struct {
int arr[MAXSIZE]; // 存储栈元素的数组
int top; // 栈顶指针
} Stack;
// 初始化栈
void initStack(Stack *s) {
s->top = -1;
}
// 判断栈是否为空
int isEmpty(Stack *s) {
return s->top == -1;
}
// 判断栈是否已满
int isFull(Stack *s) {
return s->top == MAXSIZE - 1;
}
// 入栈操作
int push(Stack *s, int value) {
if (isFull(s)) {
return 0; // 栈满,无法入栈
}
s->arr[++s->top] = value; // 元素入栈
return 1;
}
// 出栈操作
int pop(Stack *s, int *value) {
if (isEmpty(s)) {
return 0; // 栈空,无法出栈
}
*value = s->arr[s->top--]; // 栈顶元素出栈
return 1;
}
int main() {
Stack s;
initStack(&s);
push(&s, 10);
push(&s, 20);
int value;
if (pop(&s, &value)) {
printf(
参考资源链接:[2022全国计算机二级C语言考试真题及答案详解](https://wenku.csdn.net/doc/4qkr4uxzs2?spm=1055.2569.3001.10343)
阅读全文