【发布时间】:2019-11-11 15:04:28
【问题描述】:
Java 中是否有一个类从数据结构书籍中实现 Stack 的概念,意思是 LIFO,pop 是 O(1),push in O(1)?
我读了一点java.util.Stack 的代码,push 似乎不是 O(1) - push 可以调用 Vector.grow() 并且它可能需要 O(n) (我知道它摊销了 O (1) 但我一直在寻找 O(1) )
我想了解为什么 java.util.Stack 是按原样设计的,而不是按堆栈的理论原理设计的
【问题讨论】:
-
您可以使用节点编写自己的代码 - 这就像 100 行代码
-
回复:更新 - 请ask one question per post
-
“我想了解为什么 java.util.Stack 是按原样设计的”你问的是设计的哪一部分?请记住:Stack 是一个非常古老的类;从那时起,对类设计的理解有了很大的发展,所以部分答案(无论你问的是设计的哪个部分)是“因为他们当时并不知道更好”。
标签: java data-structures stack time-complexity