【发布时间】:2018-11-02 02:30:57
【问题描述】:
堆栈是一种抽象数据类型 (ADT),它应该有一个密封的操作列表,如 Push()、Pop()、Peek() 等,以强制执行后进先出 (LIFO ) 原则。
但它有 ElementAt(index) 允许我访问堆栈中的任何元素。据我了解,Stack 对不在表面的元素的可见性应该较低。不是吗?
【问题讨论】:
-
Stack<T>没有拥有ElementAt()方法。它实现了IEnumerable<T>,为此有linq 扩展ElementAt()。但这不能更改堆栈(你可以更改元素的属性,但不能更改堆栈中的引用),所以我在这里没有看到问题。
标签: c# data-structures stack adt