什么是双端队列,用链表描述一下下!是不是每个链表都有两个指针

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:49:23
什么是双端队列,用链表描述一下下!是不是每个链表都有两个指针,分别指向前一个元素和后一个??
比如在一个队列D里:
Push(x,D):将x插入到前端
Inject(x,D):将x插入到尾端
队列不是前进后面出来,那么双端又是怎么样的!!

双端队列就是可以在两端进行操作的队列
你可以用链表来表示双端队列,分别在链表头和尾进行插入或删除操作。
链表有一个指针叫单链表,二个指针叫双向链表。看情况来说,你可以有二个指针分别指向头和尾,只要方便你的操作就行,一般单链表一个就行,双向的可以2个。

队列是前端出,尾端进(FIFO),可以用链表和顺序表来表示它,一般不用作存贮结构。双端队列就是只可以在两端进行插入和删除等操作的线性表,你可以把队列看作双端队列的特殊情况,Push(x,D):将x插入到前端,你这个对双端队列成立,对队列是不成立的。

回答者:haobie122 - 试用期 一级 9-22 09:21:而队列提供的是两段连续的指针地址来指向数据,我个人认为不是很准确,这2个指针用连续来修饰是不对的。

首先 队列和链表不同,队列是先进先出,而链表不是。
链表提供的是由指针指向连接的链式存储结构,而队列提供的是两段连续的指针地址来指向数据。
一般队列有两个指针 头和尾指针,而且一般不用作存储结构。
双端队列在队列的基础上,对其进行了堆栈化,使数据能够从两边出来。
其实就是多加了一个堆栈的指针而已

楼主想得不错。要想方便地实现双端队列的的各种操作,最好是每个结点设两个指针。