2.顺序栈的基本操作实现 建立一个顺序栈,实现入栈、出栈和取栈顶元素的操作 设计四个函数: 函数InitStack0用来初始化一个 顺序栈; 函数Push0用来实现元素的入栈操作; 函数Pop0用来实现元素的出栈操作; 函数GetTopO用来实现取栈顶元素的操作
时间: 2023-05-20 16:03:14 浏览: 119
顺序栈的基本操作实现
5星 · 资源好评率100%
以下是顺序栈的基本操作实现的代码:
```c
#define MAXSIZE 100 // 定义栈的最大容量
typedef struct {
int data[MAXSIZE]; // 存放栈中元素的数组
int top; // 栈顶指针
} SqStack;
// 初始化一个顺序栈
void InitStack0(SqStack *S) {
S->top = -1; // 栈顶指针初始化为-1,表示栈为空
}
// 元素入栈操作
void Push0(SqStack *S, int x) {
if (S->top == MAXSIZE - 1) { // 栈满,无法入栈
printf("Stack overflow!\n");
return;
}
S->top++; // 栈顶指针加1
S->data[S->top] = x; // 将元素x入栈
}
// 元素出栈操作
void Pop0(SqStack *S) {
if (S->top == -1) { // 栈空,无法出栈
printf("Stack underflow!\n");
return;
}
S->top--; // 栈顶指针减1,元素出栈
}
// 取栈顶元素的操作
int GetTop0(SqStack *S) {
if (S->top == -1) { // 栈空,无法取栈顶元素
printf("Stack is empty!\n");
return -1;
}
return S->data[S->top]; // 返回栈顶元素的值
}
```
注意:这里使用了结构体来定义顺序栈,其中data数组存放栈中元素,top表示栈顶指针。InitStack0函数用来初始化一个顺序栈,将栈顶指针初始化为-1;Push0函数用来实现元素的入栈操作,如果栈满则提示“Stack overflow!”;Pop0函数用来实现元素的出栈操作,如果栈空则提示“Stack underflow!”;GetTop0函数用来实现取栈顶元素的操作,如果栈空则提示“Stack is empty!”。
阅读全文