Hat*_*end 7 java queue linked-list data-structures
在我的数据结构课上,我了解到 aLinkedList是一个队列。就像现实生活中的一条线,第一个进入这条线的人将是第一个离开的人。说得通。如下所示,aListedList实现了Queue具有 FIFO(先进先出)过程的 a。
但是,如果您查看方法push(E)和的说明pop(),它们的内容如下:
推(E)
将一个元素推送到此列表表示的堆栈上。换句话说,在此列表的前面插入元素。
流行音乐()
从此列表表示的堆栈中弹出一个元素。换句话说,删除并返回此列表的第一个元素。
那是......不是队列。那是一个堆栈。进入 LinkedList via 的第一个元素push无法访问,pop直到每个元素都被pop()'ed后添加。
为什么是这样?我知道 LinkedLists 既可以用作堆栈(如果您只使用addFirst(E)and removeFirst()),也可以用作队列(如果您只使用addFirst(E)and removeLast(),反之亦然)那么为什么会这样呢?我觉得pop()应该删除并返回最后一个元素,或者push(E)应该在LinkedList. 那么就更有意义了。
TLDR:为什么LinkedList'spush并pop暗示它在LinkedList实际实现时作为堆栈工作Queue。