1.初始化:
void InitStack(PStack ps)
{
assert(ps != NULL);
if(ps == NULL)
return ;
ps->base = (int *)malloc(INIT_SIZE * sizeof(int));//指向动态内存的指针
assert(ps->base != NULL);
ps->top = 0;//栈顶指针,栈的有效元素个数(当前可以存放数据的下标)
ps->stacksize = INIT_SIZE;//栈的总大小
}
初始化测试:
Stack s;//定义一个栈
InitStack(&s);
2.***入栈 往栈中输入数据(只能在栈顶操作) 时间复杂度为O(1)
bool Push(PStack ps,int val)
{
if(IsFull(ps))//如果满了,则扩容
{
Inc(ps);
}
ps->base[ps->top++] = val;
//ps->top++;
return true;
}
入栈测试:
Stack s;
InitStack(&s);
Push(&s,11);
int val;
GetTop(&s,&val);
printf("%d \n",val)