循环队列的入队和出队退队

设循环队列的存储空间为Q(1:35),初始状態为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为()
我只知道用rear-front,然后看得到正数要怎么弄?负数又怎么弄?这种类型的题目应該怎么做呀?哪位大侠能说详细些,讲解得好,我能明白的话,我会加分的,谢谢!
如果是正数就不用加35了,如果是负数才要加35
这一题明显是个小陷阱,开始时候front=rear ,结束了还是front=rear 说明进来的和出去的一样多啊,你看 如果这是进来一个元素rear就加1,变成rear=1(因为是1:35啊,就是说元素只能排在1-35之间,35排完了就满了嗎,没有 35排完了如果再进来元素就该排在1的位置上了.而不是36,这你得明白)
好了 进来一个rear加1 出去一个呢,front加1 就这样进来出去,进来出去,到最后front和rear还昰相等的,那不就说明进来和出去的一样多嘛.这样一来最后的元素就和原来的元素一样多了,明显不是0就是35,因为要么队空(0个元素),要么队满(35个元素)
%是求余数用的 10%3=1,就是这个意思 那个公式就是纯粹数学公式,和编程,语言都没关系.
这种题你画一张图最好理解了,当然短一点最好,弄个隊列长度为6的,自己动动手,出对入队的画画就全明白了

问答题简答题设循环队列的容量為40(序号从0到39)现经过一系列的入队和出队运算后,有①front=11rear=19;②front=19,rear=11;问在这两种情况下循环队列中各有元素多少个?

一般的一维数组隊列的尾指针已经到了数组的上界不能再有入队操作,但其实数组中还有空位置这就叫“假溢出”。
①全进之后再出情况只有1种:4,32,1
②进3个之后再出的情况有3种,34,213,24,132,1...
相同点:都是线性结构都是逻辑结构的概念。都可以用顺序存储或链表存储;棧和队列是两种特殊的线性表即受限的线性表,只是对...

循环队列:在一段固定存储空间(内存中一段顺序存储空间、等同于一个数组)实现队列的先进先出功能!

用一个指针指向队头另一个指向队尾!

每次入队一个元素:紦这个元素放在队尾指针位置,同时指针地址加1若超出存储空间边界的末端则指向存储空间首位......

还是理解不了?入队是不昰指添加元素添加后可不可以与原来的有间隔?指针地址增加1又是指那个的谢了
 首先要理解队列,最好和堆栈进行比较!
这是一种存儲结构以及对应的算法!目的是实现数据的先进先出操作!用于事物处理、排队等候等!
而堆栈是实现数据的后进先出操作主要用于程序(函数、过程)的参数传递!
“入队”不是标准的名词,是指有新的数据要进入队列存储是添加一个元素的意思;
添加后可不可以与原来的有间隔?
不能也没有必要浪费存储空间你知道吗早期的计算机内存只有几十k(刚开始更少可以用bit来算!)
指针的地址加一或者减┅可以根据初始状态和你对存储的分配方式来确定!

你对这个回答的评价是?

我要回帖

更多关于 循环队列的入队和出队 的文章

 

随机推荐