栈和队列的作用是什么?它们主要可以应用在哪些方面?

发布网友 发布时间:2022-04-20 06:32

我来回答

4个回答

热心网友 时间:2022-03-29 17:02

栈和队列都属于一位链表,栈是后进先出,进和出都是在同一端进行,就好像一筒羽毛球,只有把上面拿出来,下面的才能拿出来;队列是先进先出的,进和出分别在不同的端进行,比如排队的人,排在前面的人先到柜台办理业务,后面来的人后得到服务。

栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底。

最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。



扩展资料:

在计算机系统中,栈则是一个具有以上属性的动态内存区域。程序可以将数据压入栈中,也可以将数据从栈顶弹出。在i386机器中,栈顶由称为esp的寄存器进行定位。压栈的操作使得栈顶的地址减小,弹出的操作使得栈顶的地址增大。

栈在程序的运行中有着举足轻重的作用。最重要的是栈保存了一个函数调用时所需要的维护信息,这常常称之为堆栈帧或者活动记录。

热心网友 时间:2022-03-29 18:20

1、栈的应用(历史的回溯)

栈的输出顺序和输入顺序相反;

栈有一个著名的应用场景“面包屑工程”,使用户在浏览页面时可以轻松的回溯到上一级或上一级页面。

2、队列的应用(历史的重演)

3、双端队列

4、优先队列

遵循的不是先入先出、而是谁的优先级最高,谁先出列

优先队列不属于线性数据结构的范畴了,它属于二叉堆来实现的

散列表

散列表也作哈希表(hash table),这种数据结构提供了key和value的映射关系,只要给出一个key,就可以高效的找到它所匹配的value

哈希函数(中转站)

散列表的读写操作:

1、写操作(put)

写操作就是在散列表中插入新的键值对(在jdk中叫作entry)

热心网友 时间:2022-03-29 19:55

栈和队列都属于一位链表
区别是:
栈是后进先出,进和出都是在同一端进行,称为"压栈"(push)和"弹栈"(pop),就好象一筒羽毛球,只有把上面拿出来,下面的才能拿出来
队列是先进先出的,进和出分别在不同的端进行,比如排队的人,排在前面的人先到柜台办理业务,后面来的人后得到服务,所以称为"队列"是很形象的

热心网友 时间:2022-03-29 21:46

栈和队列的作用是排队作用,可以应用在排队类型的数据处理上,例如网络请求回复之类的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com