数据结构---第三章栈和队列---队列---选择题

这篇博客探讨了队列的基本操作,如初始化、入队、出队和读队头元素。解释了循环队列的长度计算,讨论了入队出队与front和rear的关系,以及循环单链表不适合作为链队的原因。同时,提到了队头作为出队操作位置的重要性,并简述了双端队列的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1队列的基本操作有哪些?

InitQueue(&Q):初始化队列,构造一个空队列Q。
QueueEmpty(Q):判队列空,若队列Q为空则返回True,否则返回False。
EnQueue(&Q,x):入队,若队列未满,将x加入,使之成为新的队尾。
DeQueue(&Q,&x):出队,若队列Q非空,则将队头元素赋值给x。
GetHead(Q,&x):读队头元素,若队列Q非空,则将队头元素赋值给x。
栈和队列是操作受限的线性表,因此不是任何对线性表的操作都可以作为栈和队列的操作。比如,不可以随便读取栈或队列中间的某个数据。
取出最近入队的元素既不是入队也不是出队,因此不算是基本操作。

2已知循环队列的存储空间为数组A[21],front指向队头元素的前一个位置,rear指向队尾元素。假设当前front和rear的值分别为8和3,则该队列的长度为?

在这里插入图片描述
这种情况和front指向当前元素,rear指向队尾元素的下一个元素的计算是相同的。

3入队出队操作和rearfront到底有什么关系

在这里插入图片描述

4循环队列放到一维数组A[0……M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空。下列判断队空和队满的条件中,正确的是?

在这里插入图片描述

5为什么循环单链表不适合做链队?

因为循环单链表在完成进队和出队操作后还要修改为循环的,这对队列来讲是多余的。

6为什么要选择链头做队头呢?

这是因为要在队头做出队操作,这样便于删除队头元素。

7什么是双端队列?

输出受限的双端队列:允许在一端进行插入和删除,但在另一端只允许插入的双端队列称为输出受限的双端队列。
输出受限的双端队列:允许在一端进行插入和删除,但在另一端只允许删除的双端队列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值