先进先出(FIFO,first-in,first-out)为处理从队列或堆栈发出的程序工作要求的一种方法,它使最早的要求被最先处理。后进先出,从栈中取出数据项的顺序与将它们插入栈的顺序相反。
FIFO由6个功能块组成,它们是存储体、写计数器(WP)、读计数器(RP)、满逻辑IN_FULL、空逻辑IN_EMPTY和选择逻辑SELECT。这是一个同步的FIFO。在时钟脉冲的上升沿作用下,当WR=0且FULL=0时,DIN的数据将压入FIFO堆栈。
在通常情况下,RP所指出的单元内容总是放于DOUT的输出数据线上,只是在RD=0且EMPTY=0时,RP的内容才改变而指向FIFO的下一个单元,下一个单元的内容替换当前内容并从DOUT输出。
应注意,在任何时候DOUT上都有一个数据输出,而不像RAM那样,只有在读有效时才有数据输出,平时为三态输出。
扩展资料
LIFO与FIFO存储器一样没有外部地址码输入端,而是由内部的指针指示存取的地址。LIFO只需一个指针。复位时,指针指向最末一个单元(栈底)。每写入一个数据,指针减1。当指针值减为0时,表示LIFO充满数据。
每读出一个数据,指针加1。当指针值为最大值(即指向栈底)时,说明LIFO中没有数据了。通常把LIFO(堆栈)的写入操作叫压入,读出操作叫弹出。
参考资料来源:百度百科-后进先出存储列表
参考资料来源:百度百科-先进先出
2023-08-15 广告
队列的概念就是我们平时排队,按次序来,你排在第1个,那你就第一个轮到,就是先进先出,先到先来
栈就是先进后出的一种数据结构,所谓的先进后出就是越是先进去的数据越后出来。那什么样的情形会出现先进去后出来呢?一个有尽头的单人栈道就是这样的。第一人进去了,第二个人进去了。。。。第n个人进去了。第一个人要想出来,必须第二个人先出来。第二个人要想出来,必须第三个人先出来。以此类推。这就叫栈。第一个人先进去的,但是要出来的话,第一个人确实最后一个出来的。
队就是先进先出的一种数据结构,如果你了解了先进后出的话,先进先出就很好理解了。它就是一个两头想通的并且不能后退的通道。就像排队,第一个人进去,买过票以后从前面出来了,第二个人继续。所以叫先进先出
栈是
"限定仅在表尾进行插入或删除操作的线性表。"
也就是说它有两个操作,且操作数都在线性表尾部.
队列
"是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。"
这也就是说它的插入和删除操作的对象是不同的.
这些两种基本操作的操作数(参数)的不同就构成了先进先出与后进先出的效果.
例如同样是在线性表中 "按顺序" 插入1,2,3,4
对于栈,只允许在尾部删除,所以先出栈的将会是4,即后进先出
对于队列,只允许在头部删除,所以先出队的是1,即先进后出
而根据归纳原理,这种进出的规则对于任意多次进出都是成立的,这就是先进先出,后进先出的含义
2012-07-09