C语言数据结构中链队列的基本操作是怎样的
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关C语言数据结构中链队列的基本操作是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.队列的定义队列 (Queue)是
千家信息网最后更新 2026年11月04日C语言数据结构中链队列的基本操作是怎样的
这篇文章将为大家详细讲解有关C语言数据结构中链队列的基本操作是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1.队列的定义
队列 (Queue)是另一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出(Fist In Fist Out,缩写为FIFO)的特性。在队列中,允许插入的一端叫做队尾(rear),允许删除的一端则称为队头(front)。 假设队列为q=(a1,a2,…,an),那么a1就是队头元素,an则是队尾元素。队列中的元素是按照a1、a2、…、an的顺序进入的, 退出队列也必须按照同样的次序依次出队,也就是说,只有在a1、a2、…、an-1都离开队列之后,an才能退出队列。
2.队列的表示和实现

链队列可以定义如下:
#define TRUE 1#define FALSE 0typedef struct QNode{ QElemType data; struct QNode *next;}QNode, *QueuePtr;typedef struct{ QueuePtr front; QueuePtr rear;}LinkQueue;(1) 初始化操作
Status InitQueue(LinkQueue &Q){ Q.front = Q.rear = (Queueptr) malloc(sizeof(QNode)); if(!Q.front) exit ( OVERFLOW); Q.front ->next = NULL; return OK;}(2)销毁队列
Status DestroyQueue(LinkQueue &Q){ while(Q.front) { Q.rear = Q.front->next; free (Q.front); Q.front = Q.rear; } return OK;}(3) 入队操作
Status EnQueue (LinkQueue &Q, QelemType e){ p= (QueuePtr) malloc(sizeof(QNode)); if (!p) exit ( OVERFLOW); p->data = e; p->next = NULL; Q.rear -> next =p; Q.rear = p; return OK;}(4) 出队操作
Status DeQueue (LinkQueue &Q, QelemType &e){ if ( Q.front == Q.rear) return ERROR; p=Q.front->next; e=p->data; Q.front->next =p->next; if (Q.rear == p) Q.rear = Q.front; free(p); return OK;}附录完整代码:
#includeusing namespace std;#define OK 1#define FALSE 0typedef int QElemType;typedef int Status;typedef struct QNode{ QElemType data; struct QNode *next;}QNode,*QueuePtr;typedef struct{ QueuePtr font; QueuePtr near;}LinkQueue;Status InitQueue(LinkQueue &Q){ Q.font=(QueuePtr)malloc(sizeof(QNode)); if(!Q.font) exit(FALSE); Q.font->next=NULL; Q.near=Q.font; return OK;}Status QueueEmpty(LinkQueue Q){ if(Q.font->next) return OK; return FALSE;}Status EnQueue(LinkQueue &Q,QElemType e){ QueuePtr p=(QueuePtr)malloc(sizeof(QNode)); p->data=e; Q.near->next = p; Q.near = Q.near->next; p->next = NULL; return OK;}Status DeQueue(LinkQueue &Q,QElemType &e){ if(!Q.font->next) return FALSE; QueuePtr p; p=Q.font->next; e=p->data; Q.font->next=p->next; if(Q.near==p) Q.near=Q.font; //当是最后一个元素时,Q.font=NULL,Q.near=Q.font free(p); return OK;}Status ClearQueue(LinkQueue &Q){ QueuePtr p; p=Q.font->next; QueuePtr q; while(p) { q=p; p=p->next; Q.font->next=p; free(q); } Q.near=Q.font; return OK;}void menu(){ cout<<"初始化队列:1"< 关于C语言数据结构中链队列的基本操作是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
队列
元素
一端
基本操作
数据
数据结构
结构
语言
内容
文章
更多
知识
篇文章
不错
成功
也就是
也就是说
代码
先进
只有
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
哈尔滨大商圈互联网科技有限公司
合肥互联网科技公司
奇酷互联网络科技
凡科互联网科技
互联网科技论文
互联网女皇 腾讯科技
互联网金融科技委员会
温州喔噻互联网科技有限公司
创业天下互联网科技有限公司
团飞科技与伯堂互联网服务平台
成都铂石互联网科技做什么的
荆州市昕露互联网络科技有限公司
杭州壁岐互联网科技有限公司
互联网科技年终奖
九思连强互联网电子科技有限公司
众联互联网络科技
科技发展第三阶段互联网时代
广州全民伙伴互联网科技有限公司
株洲百竞科技的互联网营销顾问
武汉亿视互联网科技有限公司
互联网科技有限公司经营范围
互联网巨头反垄断金融科技
腾讯阿里互联网科技
紫鲸互联网科技
智慧科技互联网
汉立互联网科技有限公司联系电话
互联网企业和科技型企业
互联网科技公司实习生
消费医药和互联网科技
企晟互联网信息科技有限公司