C/C++实现链式队列
2021/6/21 9:26:01
本文主要是介绍C/C++实现链式队列,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
基本功能
1.初始化链式队列:带头结点
2.入队
3.出队
4.输出队列
代码
链式队列用单链表来实现,所以掌握了单链表就掌握了链式队列。
不同的是,在定义结点、定义队列时和单链表有点区别。链式队列比单链表多了两个指针,分别指向队头和队尾结点,所以定义队列时,不仅定义结点,还要定义这两个指针。
#include <iostream> #include <stdlib.h> using namespace std; typedef int ElemType; //链式队列结点 typedef struct LinkNode{ ElemType data; struct LinkNode *next; }LinkNode; //链式队列指针 typedef struct LinkQueue{ LinkNode *front,*rear; }LinkQueue; void InitQueue(LinkQueue &Q);//初始化链式队列:带头结点 void EnQueue(LinkQueue &Q,ElemType x);//入队 bool DeQueue(LinkQueue &Q,ElemType x);//出队 bool OutPutQueue(LinkQueue Q);//输出队列 //初始化:带头结点 void InitQueue(LinkQueue &Q){ Q.front=Q.rear=(LinkNode *)malloc(sizeof(LinkNode));//建立头结点 Q.front->next=NULL; } //入队 void EnQueue(LinkQueue &Q,ElemType x){ LinkNode *s; s=(LinkNode *)malloc(sizeof(LinkNode)); s->data=x; s->next=NULL; Q.rear->next=s; Q.rear=s; } //出队 bool DeQueue(LinkQueue &Q,ElemType x){ if(Q.front==Q.rear)return false; LinkNode *p=Q.front->next; x=p->data; Q.front->next=p->next; if(Q.rear==p){ Q.rear=Q.front; } free(p); return true; } //输出队列 bool OutPutQueue(LinkQueue Q){ if(Q.front==Q.rear){ printf("队列为空\n"); return false; } LinkNode *p=Q.front->next; while(p!=NULL){ printf("%d ",p->data); p=p->next; } return true; } int main(){ ElemType x; LinkQueue Q; InitQueue(Q); EnQueue(Q,1); EnQueue(Q,2); EnQueue(Q,3); EnQueue(Q,4); EnQueue(Q,5); DeQueue(Q,x); DeQueue(Q,x); DeQueue(Q,x); DeQueue(Q,x); DeQueue(Q,x); if(DeQueue(Q,x)){ printf("出队成功\n"); }else{ printf("出队失败\n"); } OutPutQueue(Q); return 0; }
这篇关于C/C++实现链式队列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-06怎么解决跨域资源共享(CORS)问题?-icode9专业技术文章分享
- 2024-11-06在高德地图中怎么取经纬度-icode9专业技术文章分享
- 2024-11-06如何计算两个GPS坐标之间的距离-icode9专业技术文章分享
- 2024-11-06可视化的操作流程步骤是什么-icode9专业技术文章分享
- 2024-11-06TypeScript面试真题详解与实战攻略
- 2024-11-06TypeScript大厂面试真题解析与实战教程
- 2024-11-05Snowflake Cortex大语言模型函数:让AI数据查询更简单高效
- 2024-11-05Azure开发更轻松:VS Code中的GitHub Copilot for Azure公测版
- 2024-11-05Databricks与Snowflake:数据处理实力大比拼
- 2024-11-05Sealos Devbox 使用教程:使用 Cursor 开发一个高仿苹果官网