typedef struct _stack
{
int dir;
int *base;
int *top;
int *p;
}TSTACK;
TSTACK *initStack(void)
{
TSTACK *stk;
stk=(TSTACK *)malloc(sizeof(TSTACK *));
stk->p=(int *)malloc(100*sizeof(int));
stk->dir=-1;
if(-1==stk->dir)
{
stk->base=stk->p+100*sizeof(int);
stk->top=stk->p+100*sizeof(int);
}
else
{
stk->base=stk->p;
stk->top=stk->p;
}
return stk;
}
int pushInt(TSTACK *stk,int value)
{
*stk->top=value;
stk->top--;
return stk->top;
}
int popInt(TSTACK *stk)
{
stk->top++;
return *stk->top;
}
int main(void)
{
TSTACK *stk1;
int i;
int value;
stk1=initStack();
for(i=0;i<10;i++)
{
pushInt(stk1,i);
}
for(i=0;i<10;i++)
{
value=popInt(stk1);
printf("value=%d,",value);
}
}
向下生长型堆栈,top指向下一个元素入栈地址
最新推荐文章于 2024-06-11 17:23:08 发布