用c语言创建一个栈
时间: 2024-02-17 09:03:38 浏览: 59
好的,以下是一个用C语言创建一个栈的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
//定义栈结构体
typedef struct stack{
int data[MAX_SIZE];
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 == MAX_SIZE-1;
}
//入栈
void push(Stack *s, int value){
if(isFull(s)){
printf("Stack is full.\n");
return;
}
s->top++;
s->data[s->top] = value;
}
//出栈
int pop(Stack *s){
if(isEmpty(s)){
printf("Stack is empty.\n");
return -1;
}
int value = s->data[s->top];
s->top--;
return value;
}
//获取栈顶元素
int getTop(Stack *s){
if(isEmpty(s)){
printf("Stack is empty.\n");
return -1;
}
return s->data[s->top];
}
int main(){
Stack s;
initStack(&s);
push(&s, 1);
push(&s, 2);
push(&s, 3);
printf("Top element: %d\n", getTop(&s));
while(!isEmpty(&s)){
printf("%d ", pop(&s));
}
printf("\n");
return 0;
}
```
这段代码中,我们首先定义了一个栈结构体,其中包含了一个整型数组和一个整型变量top,用来表示栈顶元素的位置。然后我们定义了一些栈的基本操作函数,比如初始化栈、判断栈是否为空、判断栈是否已满、入栈、出栈和获取栈顶元素等。最后在主函数中,我们创建了一个栈,对其进行一些操作。
希望这个示例代码能对您有所帮助。
阅读全文