您的位置:首页 > 其它

学习队列的问题以及解答

2018-02-07 15:48 651 查看
1:什么是队列:队列是只允许在一段进行插入操作,而在另一端进行删除操作的线性表

2:队列的特征:队列也有线性表的类似操作,不同的是在进入队列的新元素是放在队尾的

3:什么是循环队列:当一个队列中的队尾元素满时但队头前面的还有空位是,就把要加进去的元素放在队头前面,这种头尾相连的就叫做循环队列

4:怎么判断一个队列满员:1:设置一个变量flag,当定义的两个队头队尾指针相同开始相同时,flag为0,当第二次相同时,flag为1,当flag为1时就判断此时满员。2:保留一个元素位置,就即当还有一个空位可插入时就当做满员

5:如何在代码里求出队列的长度和判断是否满员:设队列中的一个指针变量指向队头front,队尾为real,用结构体定义一个变量为Q。长度公式为:(Q.real-Q.front+MAXSIZE)%MAXSIZE。判断是否为满的公式为(Q-〉real+1)%MAXSIZE==Q-〉front

6:什么是队列的链式存储结构:队列的链式存储结构其实就是线性表的单链表,只不过它只能尾进头出,简称为链队列

7:队列的链式存储结构的出队操作:出队时,即首先头结点的后一个结点先出,此时定义一个指针指向第一个结点,然后把p->next的地址给头指针,然后free(p)就完成了出队的操作

8:栈和队列的区别:栈是只能在表尾进行插入和删除,但是队列可以在队头进行出队,在队尾进行入列

9:循环队列有什么好处:作为队列来说,若是在队头出列队尾进列的情况下,就会存在队头前面有空位,但是队尾没有空位的情况,这时候就需要把队头的元素全部顺着移位到第一个空的位置以保住能够正常的元素进入,这样就比较耗时,但用循环队列就可以有效的解决这个问题,增加运行的效率问题

10:循环队列和链队列比较:循环队列:必须预先确定一个长度,所以有存储元素个数的限制和空间的浪费。链队列:没有队列满的问题,只有当内存没有可用空间时才会满
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: