2010-05-30 60 views
3

在C语言中,当为堆栈制作弹出函数时,是否需要重新排列每个索引,还是我只能删除顶部索引,并且所有内容都自行移动1个位置?弹出元素

+1

取决于您的实施。 – kennytm 2010-05-30 07:16:24

+0

具体而言,它是基于数组,链表还是其他。 – 2010-05-30 07:25:56

回答

5

实现堆栈时,应该在数组的末尾推入并弹出,而不是开始。这样,没有什么可以移动。事实上,如果你的元素不需要清理(无指针等),那么pop就像减少栈顶变量一样简单。

+0

从堆栈顶端推送什么是一种好方法? – Jay 2010-05-30 07:21:08

+1

栈顶变量应始终指向下一个空槽。推,只需填充空插槽,然后增加堆栈顶变量。另外,在推送时,检查你的堆栈是否不会溢出包含它的数组。 – 2010-05-30 07:29:10