C++中队列有什么用
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍C++中队列有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 队列的概念及结构队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
网络技术共犯
中心管理服务器
江苏网络软件开发价格表格
十五项全球互联网领先科技成果
代码版本管理 服务器
软件开发如何绩效考核
车载网络技术上的挑战和机遇
巨兽战场服务器满了怎么可以进去
软件开发自己能完成吗
设定数据库的临时表空间
北京大数据软件开发费用
软件开发公司聚顶科技好在线
c s服务器
无锡软件开发的费用
游戏的服务器名称是什么
军转 软件开发面试题
手机app查询数据库设计
漳州市超越网络技术有限公司
数据库读写分离具体实现
软件开发推特
电子商务网络技术基础教案
金蝶无法连接数据库连接
电脑网站打不开找不到服务器
数据库原理及应用阶段性测试
传奇服务器列表怎么制作
mschart 数据库
汽车网络安全公司排名
网络技术的现状和发展前景
云服务器租赁配置
福州格链网络技术研究中心