栈的基本操作c语言陈旭
时间: 2023-09-28 17:07:21 浏览: 91
栈的基本操作包括入栈、出栈、判断栈空和判断栈满。
下面是使用C语言实现栈的基本操作的代码:
```c
#define MAXSIZE 100 // 定义栈的最大容量
typedef struct {
int data[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;
}
// 入栈
void Push(Stack *S, int x) {
if (IsFull(*S)) {
printf("Stack is full.");
return;
}
S->data[++S->top] = x;
}
// 出栈
int Pop(Stack *S) {
if (IsEmpty(*S)) {
printf("Stack is empty.");
return -1;
}
return S->data[S->top--];
}
```
可以在主函数中测试栈的基本操作:
```c
int main() {
Stack S;
InitStack(&S);
Push(&S, 1);
Push(&S, 2);
Push(&S, 3);
while (!IsEmpty(S)) {
printf("%d ", Pop(&S));
}
return 0;
}
```
输出结果为:
```
3 2 1
```
阅读全文