用c写一个栈,包括初始化,入栈和出栈
时间: 2024-05-29 07:10:41 浏览: 11
//栈的结构体定义
typedef struct stack{
int top;//栈顶指针
int *array;//栈数组
int capacity;//栈容量
}Stack;
//初始化栈
Stack* initStack(int capacity){
Stack *s = (Stack*)malloc(sizeof(Stack));
s->top = -1;
s->capacity = capacity;
s->array = (int*)malloc(sizeof(int)*capacity);
return s;
}
//判断栈是否为空
int isEmpty(Stack *s){
return s->top == -1;
}
//判断栈是否已满
int isFull(Stack *s){
return s->top == s->capacity-1;
}
//入栈
void push(Stack *s, int data){
if(isFull(s)){
printf("Stack is full!\n");
return;
}
s->array[++s->top] = data;
}
//出栈
int pop(Stack *s){
if(isEmpty(s)){
printf("Stack is empty!\n");
return -1;
}
return s->array[s->top--];
}
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)