数据结构C语言实现实现顺序栈的入栈、出栈、读栈顶元素、建栈、判断栈满、栈空等基本操作;
时间: 2023-12-24 22:03:30 浏览: 140
栈的基本操作的实现c语言
数据结构是计算机科学中非常重要的一门课程,它主要研究数据的组织、存储和管理方式。而栈和队列是数据结构中非常基础的两种数据结构,它们在程序设计中有着广泛的应用。下面是关于顺序栈的基本操作介绍:
1. 入栈:将元素压入栈顶,即将元素放入栈顶位置。
2. 出栈:将栈顶元素弹出,即将栈顶元素删除。
3. 读栈顶元素:获取栈顶元素,即获取栈顶位置的元素。
4. 建栈:初始化一个空栈。
5. 判断栈满:当栈中元素个数等于栈的最大容量时,栈即为满栈。
6. 判断栈空:当栈中没有元素时,栈即为空栈。
下面是关于顺序栈的C语言实现:
```c
#define MAXSIZE 100 // 定义栈的最大容量
typedef struct {
int data[MAXSIZE]; // 存储栈中元素的数组
int top; // 栈顶指针
} SqStack;
// 初始化一个空栈
void InitStack(SqStack *S) {
S->top = -1;
}
// 判断栈是否为空
int StackEmpty(SqStack S) {
if (S.top == -1) {
return 1;
} else {
return 0;
}
}
// 判断栈是否为满
int StackFull(SqStack S) {
if (S.top == MAXSIZE - 1) {
return 1;
} else {
return 0;
}
}
// 入栈
int Push(SqStack *S, int x) {
if (StackFull(*S)) {
return 0; // 栈满,入栈失败
} else {
S->top++;
S->data[S->top] = x;
return 1; // 入栈成功
}
}
// 出栈
int Pop(SqStack *S, int *x) {
if (StackEmpty(*S)) {
return 0; // 栈空,出栈失败
} else {
*x = S->data[S->top];
S->top--;
return 1; // 出栈成功
}
}
// 读栈顶元素
int GetTop(SqStack S, int *x) {
if (StackEmpty(S)) {
return 0; // 栈空,获取栈顶元素失败
} else {
*x = S.data[S.top];
return 1; // 获取栈顶元素成功
}
}
```
阅读全文