FILO总是后进先出吗?



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

是否有任何数据结构是LIFO而不是FILO(或其他方向(?一个反例,证明"FILO并不总是意味着LIFO">

也许我有点晚了,但有一个简单的矛盾证明。

假设有一个不是FILO的LIFO结构。这意味着首先到达的元素(让我们用字母 A 指定它(可以"不最后"处理("out"(",即如果结构中存在其他一些元素(晚于 A 到达(。其中存在最后一个元素B,很明显B≠A。但是,根据后进先出原则,是B,而不是A,必须"现在"处理(因为B是最后一个,所以必须首先处理(,所以B无论如何都要在A之前"退出"。仅当不存在这样的 B 时,即仅当没有其他元素时,才会处理元素 A。但根据定义,它是FILO。QED

以几乎相同的方式,可以证明任何FILO结构都是LIFO。

附言FIFO==LILO语句也可以类似地证明。

最新更新