用c语言编写栈的基本操作
时间: 2023-10-11 14:13:02 浏览: 48
栈是一种线性数据结构,只能在栈顶进行插入和删除操作。以下是用c语言编写栈的基本操作:
1. 初始化栈
```c
#define MAXSIZE 100 // 定义栈的大小
typedef struct {
int data[MAXSIZE]; // 定义栈的数据
int top; // 栈顶指针
} Stack;
void initStack(Stack *s) {
s->top = -1; // 栈顶指针初始化为-1
}
```
2. 判断栈是否为空
```c
int isEmpty(Stack *s) {
return s->top == -1; // 栈顶指针为-1表示栈为空
}
```
3. 判断栈是否已满
```c
int isFull(Stack *s) {
return s->top == MAXSIZE - 1; // 栈顶指针为MAXSIZE - 1表示栈已满
}
```
4. 入栈
```c
void push(Stack *s, int x) {
if (isFull(s)) {
printf("Stack is full\n");
return;
}
s->data[++s->top] = x;
}
```
5. 出栈
```c
int pop(Stack *s) {
if (isEmpty(s)) {
printf("Stack is empty\n");
return -1;
}
return s->data[s->top--];
}
```
6. 获取栈顶元素
```c
int top(Stack *s) {
if (isEmpty(s)) {
printf("Stack is empty\n");
return -1;
}
return s->data[s->top];
}
```