
Status InitStack(SqStack &S)
{
S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType))
if(!S.base) return(ERROR)
S.top=S.base
S.stacksize=STACK_INIT_SIZE
return OK
}
//Push函数:将元素压栈
Status Push(SqStack &S,SElemType e)
{
if(S.top-S.base>=S.stacksize) //压栈前判断栈空间是否够用
{ //如果栈空间大小不够,给栈分配更大的空间
S.base=(SElemType*)realloc(S.base, (S.stacksize+STACKINCREMENT)*sizeof(SElemType))
if(!S.base) return(ERROR)
S.top=S.base+S.stacksize
S.stacksize+=STACKINCREMENT //记录当前栈空间的大小
}
*S.top++=e //将要压栈的元素值压入栈的顶部!
return OK
}
在java当中。栈(stack)又叫先进后出表,它是一种运算受限的线性表。它只允许在表的一端进行插入和删除 *** 作,我们称之为栈顶,相对另一端称为栈底。将栈比喻为一个垃圾桶,垃圾桶底就类似我们的栈底(bottom),垃圾桶口就类似我们的栈顶(top),当有第一个垃圾扔进去时肯定在最底上,直至桶满,我们把垃圾往出倒肯定是最后扔进去的垃圾最先出来。栈有两个基本 *** 作:进栈:入栈或压栈,将新元素放到栈顶元素的上面,使之成为新的栈顶元素;出栈:退栈,将栈顶元素删除掉,使得与其相邻的元素成为新的栈顶元素。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)