void Init(Stack *S){//初始化一个栈
S->base=(E *)malloc(size*sizeof(E));
S->top=0;
S->Ssize=size;
}
int Len(Stack S){//得到栈内元素个数
return(S.top);
}
int Top(Stack S,E *e){//返回栈顶元素
if(!S.top)return(0);
*e=S.base[S.top-1];
return(1);
}
int Push(Stack *S,E e){//把一个新元素压入栈
if(S->top>=S->Ssize){
S->base=(E *)realloc(S->base,(S->Ssize+1)*sizeof(E));
if(!S->base)return(0);
S->Ssize++;
}S->base[S->top++]=e;
return(1);
}
int Pop(Stack *S,E *e){//把栈顶元素挤出栈
if(!S->top)return(0);
*e=S->base[--S->top];
return(1);
}
int isEmpty(Stack S){//察看栈是否空
if(!S.top)return(1);
return(0);
}
建议去看看数据结构
满眼金星!!!!
同意楼上的,看看数据结构的堆栈那一章吧!
看的累人!!!!