C语言中,队列是什么意思,有什么用途

C语言中,队列是什么意思,有什么用途,第1张

队列是一种特殊的线性表。

队列一种可以实现“先进先出”的存储结构,即“一端入,一端出”,队首(front)出队,队尾(rear)入队,若front指向队首,则rear指向队尾最后一个有效元素的下一个元素;若rear指向队尾,则front指向队首第一个有效元素的下一个元素。

队列特殊之处在于它只允许在表的前端(front)进行删除 *** 作,而在表的后端(rear)进行插入 *** 作,和栈一样,队列是一种 *** 作受限制的线性表。进行插入 *** 作的端称为队尾,进行删除 *** 作的端称为队头。

扩展资料

循环队列各个参数的含义

1、队列初始化front和rear的值都是零,初始化时队列就是空的。

2、队列非空front代表队列的第一个元素rear代表了最后一个有效元素的下一个元素。

3、队列空front和rear的值相等,但是不一定是零。

参考资料来源:百度百科—队列

如果你用vc,#include<deque>就好了,但是注意要加上using naemspace std;

我是当你用的c++的STL,STL中没有真正的队列和栈,他们都是通过对双端队列的改造得到的,所以包含的文件可能和你想的不一样。而且这些头文件都没有.h结尾!很特别

如果你不是vc,当我没说

C语言的链表与队列是两种不同的概念:

链表是一种数据的存储方式,其保存的数据在内存中是不连续的,采用指针对数据进行访问;

队列是一种数据结构,其特点是先进先出,后进后出;

队列的存储方式可以使用线性表进行存储,也可以使用链表进行存储。

SQQUEUE的第一个元素elemtype

*elem其实是指向了一个数组,该数组中存储着类型为elemtype的元素,然后front和rear就标识了队首和队尾元素对应的数组下标。

typedef

struct _Point{

int x,y

}Point

#defineelemtype

Point//这个elemtype可以是任意你自己定义的结构,可以是结构体,也可以是简单数据类型

elemtype

array[10]={0}//这个是队列的数据结构,在这里是一个Point数组

SQQUEUE

queue={0}

queue.elem=array//这样array中的元素就是queue中的元素了。

queue.front=queue.rear=queue.size=0


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10004485.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存