栈顶实现

问题描述 投票:0回答:1

在栈的数组实现中,在初始化步骤中,我们是否必须将top值取为0或-1?

有些书用 0 初始化 top,有些用 -1 初始化。哪一种是正确的并应该遵循?根据我的直觉,我认为初始化 top = -1 更好,因为我们不会为一个数据单元浪费内存。我的直觉对吗?

arrays initialization stack
1个回答
0
投票

这取决于插入数据和递增/递减堆栈指针的顺序。如果在压入时,首先插入数据,然后增加指针,则堆栈顶部将为 0,因为第一个操作是将数据放入第一个槽中。但是,当以相反的方式完成时,即增加指针然后插入数据,顶部将为 -1,因为它需要首先增加到零才能到达有问题的槽。

© www.soinside.com 2019 - 2024. All rights reserved.