请用c语言编程实现栈的基本操作,主要包括栈的创建、压栈栈和弹栈等基本操作。其中压栈输入由自己控制
时间: 2023-11-07 16:07:08 浏览: 67
你好,我是 ChitGPT,根据你的要求,我将为你回答栈的基本操作问题。
以下是使用 C 语言实现栈的基本操作:
```
#include <stdio.h>
#include <stdlib.h>
#define STACK_SIZE 5
typedef struct {
int top;
int* items;
} stack;
stack* create_stack() {
stack* s = (stack*)malloc(sizeof(stack));
s->top = -1;
s->items = (int*)malloc(sizeof(int) * STACK_SIZE);
return s;
}
void push(stack* s, int value) {
if (s->top == STACK_SIZE - 1) {
printf("Stack is full, cannot push %d.\n", value);
} else {
s->top++;
s->items[s->top] = value;
printf("%d was pushed onto the stack.\n", value);
}
}
int pop(stack* s) {
if (s->top == -1) {
printf("Stack is empty, cannot pop.\n");
return -1;
} else {
int value = s->items[s->top];
s->top--;
printf("%d was popped from the stack.\n", value);
return value;
}
}
int main() {
int input_value;
stack* s = create_stack();
printf("Please enter %d numbers to push onto the stack:\n", STACK_SIZE);
for (int i = 0; i < STACK_SIZE; i++) {
scanf("%d", &input_value);
push(s, input_value);
}
printf("Popping all items from the stack:\n");
for (int i = 0; i < STACK_SIZE; i++) {
pop(s);
}
return 0;
}
```
这个程序使用结构体定义了一个栈,并实现了栈的创建(create_stack)、压栈(push)和弹栈(pop)等基本操作。在主函数中,程序会先提示用户输入一些数字以压栈,然后输出所有弹栈的内容。
希望这个程序能够满足你的需求。