c语言要求实现以下功能: 1.栈的表示与实现。 (1)初始化一个空顺序栈。+(2)顺序栈的入栈操作的程序。。(3)顺序栈的出栈操作的程序。。(4)取栈顶元素。
时间: 2024-12-18 13:26:04 浏览: 20
在C语言中,我们可以使用数组或动态内存分配(如`malloc`)来实现一个简单的顺序栈。这里是一个基础的顺序栈实现:
1. 初始化一个空顺序栈:
```c
#include <stdio.h>
#define MAX_SIZE 10
typedef struct Stack {
int top; // 栈顶指针
int data[MAX_SIZE]; // 存储数据的数组
} Stack;
// 初始化空栈
void init(Stack* s) {
s->top = -1;
}
```
2. 顺序栈的入栈操作(也叫压栈):
```c
void push(Stack* s, int value) {
if (s->top == MAX_SIZE - 1) {
printf("Stack overflow.\n");
return;
}
s->data[++s->top] = value;
}
```
3. 顺序栈的出栈操作(也叫弹栈):
```c
int pop(Stack* s) {
if (s-1) {
printf("Stack underflow.\n");
return -1; // 返回错误码
}
return s->data[s->top--];
}
```
4. 取栈顶元素(查看当前栈顶而不弹出):
```c
int peek(Stack* s) {
if (s-1) {
printf("Stack is empty.\n");
return -1; // 同样返回错误码
}
return s->data[s->top];
}
```
阅读全文