栈的基本操作c语言程序
时间: 2023-09-11 07:06:23 浏览: 45
栈是一种常见的数据结构,基本操作包括入栈、出栈、判断栈是否为空、获取栈顶元素等。以下是一个用C语言实现的栈基本操作的程序:
```c
#include <stdio.h>
#define MAX_SIZE 100 //栈的最大容量
int stack[MAX_SIZE]; //栈数组
int top = -1; //栈顶指针,初始值为-1
//判断栈是否为空
int is_empty() {
return top == -1;
}
//判断栈是否已满
int is_full() {
return top == MAX_SIZE - 1;
}
//入栈操作
void push(int x) {
if (is_full()) {
printf("Stack is full.\n");
return;
}
stack[++top] = x;
}
//出栈操作
void pop() {
if (is_empty()) {
printf("Stack is empty.\n");
return;
}
top--;
}
//获取栈顶元素
int get_top() {
if (is_empty()) {
printf("Stack is empty.\n");
return -1;
}
return stack[top];
}
//打印栈中元素
void print_stack() {
if (is_empty()) {
printf("Stack is empty.\n");
return;
}
printf("Stack: ");
for (int i = 0; i <= top; i++) {
printf("%d ", stack[i]);
}
printf("\n");
}
int main() {
push(1);
push(2);
push(3);
print_stack(); //输出:Stack: 1 2 3
pop();
print_stack(); //输出:Stack: 1 2
printf("Top element: %d\n", get_top()); //输出:Top element: 2
push(4);
push(5);
push(6);
print_stack(); //输出:Stack: 1 2 4 5 6
return 0;
}
```
该程序定义了一个栈数组stack和栈顶指针top,实现了判断栈是否为空、判断栈是否已满、入栈操作、出栈操作、获取栈顶元素以及打印栈中元素等基本操作。在主函数中,通过调用这些函数演示了栈的基本操作。