栈和队列的作用是什么?它们的主要应用是什么?
堆栈和队列都属于一个链表。栈是后进先出的,进出都是在同一端进行,就像羽毛球一样。只有把上面的拿出来,才能把下面的拿出来。队列先进先出,进出在不同端进行。比如先排队的人去柜台办理业务,后来的人得到服务。
栈作为一种数据结构,是一种特殊的线性表,只能在一端插入和删除。它按照先入后出的原则存储数据,先入的数据被推到栈底。
最后一个数据在栈顶。需要读取数据时,会从栈顶弹出(先读取最后一个数据)。栈有记忆功能,插入或删除栈时不需要改变栈底指针。
扩展数据:
在计算机系统中,堆栈是具有上述属性的动态内存区域。程序可以将数据推入堆栈,也可以从堆栈顶部弹出数据。在i386机器中,栈顶由一个叫做esp的寄存器定位。压入栈的操作减少了栈顶的地址,弹出栈的操作增加了栈顶的地址。
堆栈在程序运行中起着重要的作用。最重要的是,堆栈存储了一个函数被调用时所需的维护信息,通常称为堆栈帧或活动记录。