C++中队列有什么用
发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,这篇文章主要介绍C++中队列有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 队列的概念及结构队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表
千家信息网最后更新 2025年02月24日C++中队列有什么用
这篇文章主要介绍C++中队列有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
1. 队列的概念及结构
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头
2. 队列的实现
2.1 queue.h
#include#include #include #include typedef int QDataType;typedef struct QueueNode{ struct QueueNode*next; QDataType data;}QueueNode;typedef struct Queue{ QueueNode *head; QueueNode *tail;}Queue;void QueueInit(Queue *pq);void QueueDestory(Queue *pq);void QueuePush(Queue *pq,QDataType x);void QueuePop(Queue *pq);QDataType QueueFront(Queue *pq);QDataType QueueBack(Queue *pq);bool QueueEmpty(Queue *pq);int QueueSize(Queue *pq);
2.2 queue.c
#include"queue.h"void QueueInit(Queue *pq){ assert(pq); pq->head = pq->tail = NULL;}void QueueDestory(Queue *pq){ assert(pq); QueueNode *cur = pq->head; while (cur) { QueueNode *next = cur->next; free(cur); cur = next; } pq->head = pq->tail = NULL;}void QueuePush(Queue *pq, QDataType x){ assert(pq); QueueNode *newnode = (QueueNode*)malloc(sizeof(QueueNode)); if (newnode == NULL) { printf("malloc fail\n"); exit(-1); } newnode->data = x; newnode->next = NULL; if (pq->tail == NULL) { pq->head = pq->tail = newnode; } else { pq->tail->next = newnode; pq->tail = newnode; }}void QueuePop(Queue *pq){ assert(pq); assert(!QueueEmpty(pq)); if (pq->head->next == NULL) { free(pq->head); pq->head = pq->tail = NULL; } else { QueueNode *next = pq->head->next; free(pq->head); pq->head = next; }}QDataType QueueFront(Queue *pq){ assert(pq); assert(!QueueEmpty(pq)); return pq->head->data;}QDataType QueueBack(Queue *pq){ assert(pq); assert(!QueueEmpty(pq)); return pq->tail->data;}bool QueueEmpty(Queue *pq){ assert(pq); return pq->head == NULL;}int QueueSize(Queue *pq){ int size = 0; QueueNode *cur = pq->head; while (cur) { QueueNode *next = cur->next; ++size; cur = cur->next; } return size;}
2.3 test.c
#include"queue.h"void TestOne(){ Queue q; QueueInit(&q); QueuePush(&q, 1); QueuePush(&q, 2); QueuePush(&q, 3); QueuePush(&q, 4); while (!QueueEmpty(&q)) { printf("%d ", QueueFront(&q)); QueuePop(&q); } printf("\n"); QueueDestory(&q);}int main(){ TestOne(); return 0;}
以上是"C++中队列有什么用"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
队列
一端
C++
内容
数据
篇文章
特殊
价值
先进
兴趣
小伙
小伙伴
更多
知识
线性
结构
行业
资讯
资讯频道
频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
财务服务器的电脑配置
服务器语言排名
计算机网络技术全套教材
中国电信软件开发公司
百度服务器地址怎样在设置中去除
数据库选型特点
360网络安全学院毕业去向
巨人追猎者服务器金团
达梦7数据库重启
拱墅区app软件开发团队
网页如何连接sql数据库
代理服务器干嘛的
网络技术基础教程
主播喜欢玩什么服务器
青岛比特微尔软件开发
化工软件开发商
打开数据库流程实例
软件开发个人简历封面下载
网络安全法维护哪些权益
北京2019年软件开发招聘
育碧服务器国外
长沙生财金点子软件开发公司
广州市网络服务器
中小企业网络安全海报
噪音检测软件开发
试用期能约定服务器协议吗
车载网络技术凌永成版本
嵌入式软件开发发展
大众迈腾车载网络技术论文
深圳福田软件测试培训软件开发