33,027
社区成员




/* 堆栈程序实例 */
#include <stdio.h>
#include <stdlib.h>
#define SIZE 50
void push(int i);
int pop(void);
int *tos,*p1,stack[SIZE];
int main(void)
{
int value;
tos = stack; /* tos points to the top of stack */
p1 = stack; /* initialize p1 */
do{
printf("Enter value:");
scanf("%d",&value);
if(value!=0) push(value);
else printf("value on top is %d\n",pop());
}while(value!=-1);
return 0;
}
void push(int i)
{
p1++;
if(p1==(tos+SIZE)){
printf("Stack Overflow.\n");
exit(1);
}
*p1 = i;
}
int pop(void)
{
if(p1==tos){
printf("Stack Underflow.\n");
exit(1);
}
p1--;
return *(p1+1);
}