在C++语言中,什么是队列?
我对队列不是非常清楚,它就是数组吗?它是不是和链表有关?那么它和栈啊堆啊数组啊又是什么关系?我很迷惑,请高手指点,可以的话,麻烦写一段简单的代码解释,谢谢...
我对队列不是非常清楚,它就是数组吗?它是不是和链表有关?那么它和栈啊堆啊数组啊又是什么关系?我很迷惑,请高手指点,可以的话,麻烦写一段简单的代码解释,谢谢
展开
展开全部
这个问题么。根据自己的理解说一下吧。
数组跟队列在刚接触的时候确实很容易想到一起去。虽然我很想上来就解释这个,但是事实上是不行的。因为,你首先要明白一个概念。链表,顺序表,队列,栈,他们是什么关系。
链表,顺序表,是数据的一种数据的存放形式,页就是说,链表上个节点会有指针让你找到下个节点,他们不需要在内存中连续存放,顺序表则需要连续存放,第一个节点的位置决定了以后节点的位置。
而所谓队列,跟栈,是一个数据的逻辑概念,逻辑概念主要指的是数据能进行的操作。比如队列先进先出,栈后进先出。
更直观说,我们想要用的,是队列或者栈,由于真正运行需要在机器上运行,需要放入内存,因此我们要用链表或者顺序表实现队列或者栈。因此有顺序队列,链表队列,顺序栈,链表栈。
最后说你的困惑,你之所以吧队列跟数组联系到一起,那么你现在理解的队列,是顺序队列。他们的关系是什么呢,首先数组是语言的东西,队列是数据结构的东西。然后,如果你在C++里面实现书序队列,那么,你可以理解成,数组就是顺序数组(其实没有链表数组),它跟顺序队列,书序栈,顺序二叉树等等,是平行的概念。
数组跟队列在刚接触的时候确实很容易想到一起去。虽然我很想上来就解释这个,但是事实上是不行的。因为,你首先要明白一个概念。链表,顺序表,队列,栈,他们是什么关系。
链表,顺序表,是数据的一种数据的存放形式,页就是说,链表上个节点会有指针让你找到下个节点,他们不需要在内存中连续存放,顺序表则需要连续存放,第一个节点的位置决定了以后节点的位置。
而所谓队列,跟栈,是一个数据的逻辑概念,逻辑概念主要指的是数据能进行的操作。比如队列先进先出,栈后进先出。
更直观说,我们想要用的,是队列或者栈,由于真正运行需要在机器上运行,需要放入内存,因此我们要用链表或者顺序表实现队列或者栈。因此有顺序队列,链表队列,顺序栈,链表栈。
最后说你的困惑,你之所以吧队列跟数组联系到一起,那么你现在理解的队列,是顺序队列。他们的关系是什么呢,首先数组是语言的东西,队列是数据结构的东西。然后,如果你在C++里面实现书序队列,那么,你可以理解成,数组就是顺序数组(其实没有链表数组),它跟顺序队列,书序栈,顺序二叉树等等,是平行的概念。
展开全部
队列就是一个容器, 先进入的数据先出来,后进入的数据后出来
凡是具备这个关键性质的数据结构都叫队列, 你可以用数组也可以用链表
凡是具备这个关键性质的数据结构都叫队列, 你可以用数组也可以用链表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素成为出队。因为队列只允许在一段插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素成为出队。因为队列只允许在一段插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询