关于栈插入元素的。

关于栈插入元素的。,第1张

// InitStatck 函数:用来初始化栈空间

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),当有第一个垃圾扔进去时肯定在最底上,直至桶满,我们把垃圾往出倒肯定是最后扔进去的垃圾最先出来。栈有两个基本 *** 作:进栈:入栈或压栈,将新元素放到栈顶元素的上面,使之成为新的栈顶元素;出栈:退栈,将栈顶元素删除掉,使得与其相邻的元素成为新的栈顶元素。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11823392.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存