栈的简单使用和运行结果
程序员文章站
2024-03-23 12:32:52
...
#include <stdio.h>
#include <stdlib.h>
#include<malloc.h>
#include<string.h>
#define STACK_SIZE 10 //定义数组10
typedef struct Stack{
int stack[STACK_SIZE];
int top;
} stack;
void init_Stack(stack *a){
a->top=-1;
}
int Push(stack *a,int n){
if(a->top==STACK_SIZE-1){
printf("此栈已经满\n");
return -1;
}else{
a->top++;
a->stack[a->top]=n;
printf("%d 已经成功压栈\n",a->stack[a->top]);
return 0;
}
}
int Pop(stack *a,int n){
if(a->top==-1){
printf("此栈无数字可弹出\n");
return -1;
}else{
printf("弹出顺序%d\n",a->stack[a->top]);
a->top--;//此顺序很重要
}
}
int main(){
stack a;
int i=0;
printf("@franklei__Coding\n"); //给自己的代码打个标记
init_Stack(&a);
// 定义了10个单位的栈,输入12个则有两个不会压栈
for(i=1;i<=12;i++){
Push(&a,i);
}
// 将压入栈中的数据打印出来
printf("压入栈中的数据为\n");
for(i=0;i<10;i++){
printf("%d ",a.stack[i]);
}
printf("弹出栈的数据为\n");
for(i=1;i<=12;i++){
Pop(&a,i);
}
system("pause");
return 0;
}
上一篇: 前端面试必备——基本排序算法
下一篇: Mysql的锁机制之表锁