2012-04-01 41 views
1

我正在通过实现一些数据结构来实践ADT的知识,即使大多数已经存在。随着堆栈,我读过的很多书籍和其他文档都谈到了当您尝试添加元素但堆栈已满时堆栈抛出错误。在一个java实现(或任何其他)中,我是否应该特别跟踪最大堆栈大小(来自构造函数),检查是否已达到该大小,如果是,则抛出一个溢出异常? 还是不是这么大?堆栈应该具有​​最大尺寸吗?

+0

队列或列表是否应具有最大大小? Stack * ADT *如何/为什么会有所不同? – 2012-04-01 05:42:30

回答

5

取决于堆栈的种类,但通常,如果堆栈是分配堆栈,大小无关紧要。

如果你的堆栈确实分配在堆栈上,那么你应该保持它很小。

+0

如果堆栈为空而您执行peek()或pop(),那么应该抛出EmptyStackException或返回null? – 2012-04-01 05:30:53

+3

再一次,这取决于目的。对于学术练习,我会说一个例外是可取的,只要你也实现了empty()。 – 2012-04-01 05:32:33