栈的运算
#include<stdio.h>#include<stdlib.h>
void init_stack(int*s,int m,int*top) //建立一个空栈的顺序存储空间
{ s=malloc(m*sizeof(int));
top=malloc(sizeof(int));
*top=0;return;
}
void push(int*s,int m,int*top,int x) //进栈函数
{ if(*top==m)
{ printf("Stackflow\n"); return ;}
*top=*top+1;
s[*top-1]=x;
return ;
}
void main( void)
{ int i,n,m ,t=15;//t为栈的长度
int*top,*s;
init_stack(s,t,top); //建立一个空栈
printf("input n(<15) numbers:");
scanf("%d",&m);
printf("input numbers:");
for(i=0;i<m;i++)
{ scanf("%d",&n);
push(s,t,top,n);
}
printf("要插入的数:");
scanf("%d",&n);
push(s,t,top,n);
return;
}