若将一个双端队列顺序表示在一维数组V[m]中,两个端点设为end1和end2,并组织成一个循环队列。试写出双端队列所用指针endl和end2的初始化条件及队空与队满条件, .并编写基于此结构的相应的插入(enqueue)新元素和删除(dlqueue)算法。
举一反三
- 一个双端队列Deque是限定在两端,end1和end2都可以进行插入和删除的线性表。队空条件是end1=end2。若用顺序方式来组织双端队列,试根据下列要求,定义双端队列的结构,并给出在指定端 i ( i =1,2)进行插入enq和删除deq操作的实现。要求:① 当队满时,最多只能有一个元素空间可以是空的。② 在进行两端的插入和删除时,队列中其他元素是一律不动。
- 循环队列放在一维数组A[0…M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空,下列判断队空和队满的条件中,正确的是( )。
- 假设循环队列中只设rear和length分别指示循环队列中的队尾位置和队列中所含元素的个数。试给出该循环队列的队空条件和队满条件,并写出相应的入队(Add_Queue)算法和出队(Del_Queue)算法。
- 设有一个顺序循环队列中有M个存储单元,采用空一个位的方式区分队列空和满,则该循环队列中最多能够存储______ 个队列元素;若队首指针为F,队尾指针为R,则当前实际存储______ 个队列元素(注意:设队首指针F指向队头元素的前一个位置,队尾指针R指向队尾元素的位置, % 表示求余运算也称取模运算)。
- 顺序队列和循环队列的队满及队空判断条件是一样的。