用c语言编写一个程序实现顺序栈的插入和删除
时间: 2024-05-05 18:18:12 浏览: 107
好的,为您提供代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 // 定义栈的最大容量
int top = -1; // 定义栈顶指针,初始值为-1
// 定义顺序栈结构体
typedef struct {
int data[MAXSIZE];
} SeqStack;
// 初始化栈
void InitStack(SeqStack *s) {
top = -1;
}
// 判断栈是否为空
int IsEmpty(SeqStack s) {
if (top == -1) {
return 1;
} else {
return 0;
}
}
// 判断栈是否已满
int IsFull(SeqStack s) {
if (top == MAXSIZE - 1) {
return 1;
} else {
return 0;
}
}
// 入栈操作
void Push(SeqStack *s, int x) {
if (IsFull(*s)) { // 判断栈是否已满
printf("Stack is Full!\n");
return;
}
top++;
s->data[top] = x;
}
// 出栈操作
void Pop(SeqStack *s) {
if (IsEmpty(*s)) { // 判断栈是否为空
printf("Stack is Empty!\n");
return;
}
top--;
}
int main() {
SeqStack s;
InitStack(&s); // 初始化栈
Push(&s, 1); // 入栈操作
Push(&s, 2); // 入栈操作
Pop(&s); // 出栈操作
return 0;
}
```
这里提供了栈的最基本的功能,您可以在此基础上进行扩展。希望可以帮您解决问题。
阅读全文