data-structures - FILO 总是 LIFO 吗?

标签 data-structures stack lifo

堆栈被称为后进先出 (LIFO) 和先进后出 (FILO) 结构。

有没有数据结构是 LIFO 但不是 FILO (或其他方向)?一个反例证明“FILO并不总是意味着LIFO”

最佳答案

也许我有点晚了,但有一个简单的反证证明。
假设有一个不是 FILO 的 LIFO 结构。这意味着首先到达的元素(让我们用字母 A 指定它)可以被处理(“出”)“不最后”,即如果结构中存在一些其他元素(晚于 A 到达)。其中存在最后一个元素B,显然B≠A。但是,根据 LIFO 原则,必须“现在”处理的是 B,而不是 A(因为 B 是最后一个,因此必须首先处理),因此无论如何 B 会在 A 之前“退出”。仅当不存在这样的 B 时,即仅当没有其他元素存在时,才处理元素 A。但它的定义是 FILO。 QED
以几乎相同的方式可以证明任何 FILO 结构都是 LIFO。
附言FIFO==LILO 语句也可以类似地证明。

关于data-structures - FILO 总是 LIFO 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61775669/

相关文章:

go - "value semantics’ "和 "pointer semantics"在 Go 中是什么意思?

c# - 什么时候应该使用链接列表的真实世界示例是什么?

c++ - 使用 AVL 树的缺点是什么?

c - C 堆栈实现中的值发生变化

c++ - 堆栈和队列回文程序

java - 将一系列列表转换为子列表并将它们存储在 linkedlist 类型的列表中

java - 在 Java 中打印堆栈值

java - 如何实现LIFO模式的链接阻塞队列

c - GLib 堆栈数据类型?

c++ - 使用堆栈查看两个字符串是否相等