编写一个程序实现顺序栈的基本运算
时间: 2024-06-17 09:07:22 浏览: 14
实现顺序栈的基本运算,需要定义一个数组和一些基本操作,包括:初始化栈、判断栈是否为空、获取栈顶元素、入栈、出栈等。
以下是实现顺序栈的基本运算的步骤:
1. 定义一个数组来存储栈中的元素。
2. 定义一个变量 top 来指示栈顶位置,初始值为 -1。
3. 初始化栈:将 top 设为 -1,表示栈为空。
4. 判断栈是否为空:如果 top 的值为 -1,则说明栈为空。
5. 获取栈顶元素:返回数组中 top 位置的元素。
6. 入栈:将元素插入到数组中 top+1 的位置,然后将 top 值加 1。
7. 出栈:将数组中 top 位置的元素弹出,然后将 top 值减 1。
以下是示例代码:
```
#define MAXSIZE 100 // 定义栈的最大容量
typedef struct {
int data[MAXSIZE];
int top;
} SqStack;
// 初始化栈
void InitStack(SqStack *s) {
s->top = -1;
}
// 判断栈是否为空
int IsEmpty(SqStack s) {
return s.top == -1 ? 1 : 0;
}
// 获取栈顶元素
int GetTop(SqStack s) {
if (IsEmpty(s)) {
printf("Stack is empty!\n");
return -1;
}
return s.data[s.top];
}
// 入栈
int Push(SqStack *s, int x) {
if (s->top == MAXSIZE - 1) {
printf("Stack is full!\n");
return 0;
}
s->top++;
s->data[s->top] = x;
return 1;
}
// 出栈
int Pop(SqStack *s, int *x) {
if (IsEmpty(*s)) {
printf("Stack is empty!\n");
return 0;
}
*x = s->data[s->top];
s->top--;
return 1;
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)