# include <stdio.h>
# include <stdlib.h>
# define MAXSIZE 10
typedef struct node{
int data[MAXSIZE];
int top;
}SEQSTACK;
void init_stack(SEQSTACK *S)
{
S->top = -1;
}
void stack_push(SEQSTACK *S,int n)
{
if(S->top==MAXSIZE-1){
printf("full stack!\n");
return;
}
S->data[++(S->top)] = n;
}
int getTop_data(SEQSTACK *S)
{
if(!isEmpty(S))
return S->data[S->top];
return;
}
int isEmpty(SEQSTACK *S)
{
int isEmpty = S->top==-1?1:0;
return isEmpty;
}
int pop_stack(SEQSTACK *S)
{
if(isEmpty(S))
{
printf("empty stack!\n");
return;
}
// 出栈先出栈顶
int data = S->data[S->top];
S->top--;
return data;
}
void clear_stack(SEQSTACK *S)
{
S->top = -1;
}
int stack_length(SEQSTACK *S)
{
return S->top+1;
}
int main()
{
SEQSTACK *s = (SEQSTACK*)malloc(sizeof(SEQSTACK));
init_stack(s);
// printf("%d",s->top);
int i;
for(i = 0;i<MAXSIZE;i++){
stack_push(s,i);
}
// stack_push(s,1);
int topData = getTop_data(s);
printf("topdata:%d\n",topData);
printf("length:%d\n",stack_length(s));
int popData = pop_stack(s);
printf("topdataNow:%d,popData:%d\n",getTop_data(s),popData);
}
虽然比较简单,但也还是记录下吧