一个双端队列Deque是限定在两端,end1和end2都可以进行插入和删除的线性表。队空条件是end1=end2。若用顺序方式来组织双端队列,试根据下列要求,定义双端队列的结构,并给出在指定端 i ( i =1,2)进行插入enq和删除deq操作的实现。要求:① 当队满时,最多只能有一个元素空间可以是空的。② 在进行两端的插入和删除时,队列中其他元素是一律不动。
举一反三
- 双端队列可以在队列的两端进行插入和删除操作,既可在队尾进行插入/删除,又可在队头进行插入/删除。现有4个不同的元素顺序输入到双端队列,那么可以得到_____种不同的排列
- 若将一个双端队列顺序表示在一维数组V[m]中,两个端点设为end1和end2,并组织成一个循环队列。试写出双端队列所用指针endl和end2的初始化条件及队空与队满条件, .并编写基于此结构的相应的插入(enqueue)新元素和删除(dlqueue)算法。
- 双端队列是一种特殊的线性表, 对它所有的插入和删除都限制在表的两端进行。 现有 4 个元素对空双端队列执行插入, 问可以得到多少种不同的双端队列状态?如果是 5 个元素,情况又是怎样?如果有[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]个元素呢?
- 超队列是一种输出受限的双端队列,即插入限制在一端(例如end1)进行,而删除仍允许在两端进行。
- 超栈是一种输入受限的双端队列,即插入限制在一端(例如end2)进行,而删除仍允许在两端进行。