最新要闻
- 【速看料】用上自研3.0T发动机 坦克700实车曝光:水泥灰质感十足
- 天天微速讯:做清洁的噩梦!潮汕女子晒大扫除:一家人出动擦镂空家具
- 当前快讯:春节假期7天免通行费!交通部:目前全国高速公路通行畅通
- 大批AMD RX 6000挂掉的原因找到了!挖矿、湿度影响
- 专家:春节期间最好每餐七分饱
- 环球热文:比苹果良心!微信支付春节福利来了:App Store充值9折
- 环球最新:毫米波无线投屏带来全新体验 红魔电竞显示器上手
- 环球今日报丨戴尔发布新款32寸6K显示器:剑指苹果Pro Display XDR
- 焦点精选!徐志胜首登春晚:担心在春晚嘴瓢每天练绕口令
- 当前快看:土耳其上空出现碟形透镜云:恍若UFO、相当震撼
- 年终奖入手iPhone 14:听我的别贴膜 没啥用
- 一口一只小苍蝇:不恶心吗?
- 3小时挪动300米堵哭了!去海南自驾请注意:需预约购票
- 【世界新视野】《塞尔达传说:王国之泪》即将发售 网友抱怨任天堂还没开始宣发
- 当前观点:广东游客专程来感受-50℃的漠河 有车企趁极寒测试车辆性能
- 每日消息!张朝阳用物理知识解构《流浪地球2》:吴京听惊讶 竖拇指点赞
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
世界今热点:[数据结构] 队列 (C语言)
(资料图片)
队列
队列基本概念
队列( queue)是一种特殊的线性表结构,只从队尾插入新的元素,并且只从队首弹出元素。一般将队尾称为 rear,队首称为 front。
队列基本操作
(1)入队:从队尾 rear插入新元素;(2)出队:从队首 front弹出元素。
队列的特性
队列遵循 先进先出的原则。比如元素 1、2、3、4、5依次入队,且中途不存在出队过元素再次入队或其他元素入队,出队顺序为 1、2、3、4、5。
循环顺序队列
循环顺序队列基本概念
顺序队列是用数组实现的队列,但是由于定义的数组的空间有限,可以想象一下,当队首 front和 队尾 rear经过一系列操作都往后移动时,之前所使用到的空间都不会再被使用了,这造成了空间上的浪费。
所以定义顺序队列往往采用更加高效的 循环顺序队列,其基本上就是在顺序队列的基础上加了一点小小的修改。
循环顺序队列的入队操作
循环顺序队列入队操作图解
初始状态下的循环顺序队列
元素1入队
元素2、3、4、5入队
循环顺序队列入队操作代码
//队列元素入队void Enter_SqQueue(SqQueue *Q, int e){ if((Q->rear + 1) % MAXSIZE == Q->front){printf("队列已满\n");return; } Q->data[Q->rear] = e; //在队尾指向的地址赋值 Q->rear = (Q->rear + 1) % MAXSIZE; //队尾指针进1}
循环顺序队列的出队操作
循环顺序队列出队操作图解
元素1出队
元素2、3、4、5出队
循环顺序队列出队操作代码
//队列元素出队void Depart_SqQueue(SqQueue *Q, int *e){ if(IsEmpty(Q)){printf("队列中无元素\n");return; } *e = Q->data[Q->front]; //取出队首指针指向的地址元素 Q->front = (Q->front + 1) % MAXSIZE;//队首指针进1}
循环顺序队列中的循环示例
入队
此时队列rear虽然指向数组的最后,但循环操作可以使其重复利用之前使用的空间。
出队
类似的此时队列front指向数组的最后
循环顺序队列完整程序
源代码
#include#include#include#define MAXSIZE 1000typedef int Elemtype;typedef struct SqQueue{ Elemtype data[MAXSIZE]; int front; //队列前指针 int rear; //队列后指针}SqQueue;//初始化void Create_SqQueue(SqQueue *Q){ Q->front = Q->rear = 0;}//判断队列是否为空bool IsEmpty(SqQueue *Q){ return Q->front == Q->rear;}//求得队列长度int SqQueue_Length(SqQueue *Q){ return (Q->rear - Q->front + MAXSIZE) % MAXSIZE;}//队列元素入队void Enter_SqQueue(SqQueue *Q, int e){ if((Q->rear + 1) % MAXSIZE == Q->front){printf("队列已满\n");return; } Q->data[Q->rear] = e; //在队尾指向的地址赋值 Q->rear = (Q->rear + 1) % MAXSIZE; //队尾指针进1}//队列元素出队void Depart_SqQueue(SqQueue *Q, int *e){ if(IsEmpty(Q)){printf("队列中无元素\n");return; } *e = Q->data[Q->front]; //取出队首指针指向的地址元素 Q->front = (Q->front + 1) % MAXSIZE;//队首指针进1}//取队首int Get_front(SqQueue *Q){ if(IsEmpty(Q)){printf("队列为空\n");return -1; } return Q->data[Q->front];}int main(){ SqQueue myQueue; Elemtype a[5] = {35, 30, 11, 23, 9}; Create_SqQueue(&myQueue); for(int i = 0; i < 5; i++) Enter_SqQueue(&myQueue, a[i]); Elemtype e; Depart_SqQueue(&myQueue, &e); printf("出队元素: %d\n", e); printf("元素22入队并将所有元素出队: \n"); Enter_SqQueue(&myQueue, 22); while(!IsEmpty(&myQueue)){ printf("%d ", Get_front(&myQueue)); Depart_SqQueue(&myQueue, &e); } return 0;}
程序运行结果
链队列
链队列基本概念
链队列是链式的队列结构,其拥有一个 front指针作为队首,一般队首 front是不带数据的;还有一个 rear指针作为队尾,队尾 rear指向队列的最后一个元素。链队列的操作和链表也有一些相似之处。
链队列的入队操作
链队列入队操作图解
初始状态下的链队列
元素1入队
元素2、3入队
链队列入队操作代码
//链队列元素入队void Enter_LinkQueue(LinkQueue *Q, int e){ Linknode *node = (Linknode*)malloc(sizeof(Linknode)); node->data = e; node->next = NULL; Q->rear->next = node; //原先队列尾指针后继next指向新节点node Q->rear = node; //尾指针重新指向新节点node}
链队列的出队操作
链队列出队操作图解
元素1出队
链队列出队操作代码
当链队列只有一个元素并且将其出队时,需要特判一下,将链队列置于空队列的状态。
//链队列元素出队void Depart_LinkQueue(LinkQueue *Q, int *e){ if(Q->rear == Q->front) return; Linknode *p; p = Q->front->next; //要删除的节点暂存给p *e = p->data; //取出删除队头节点的数据 Q->front->next = p->next; //队头节点的后继next直接跨过删除的节点指向其下一个节点 if(Q->rear == p) //当队列只有一个元素的情况 Q->rear = Q->front; free(p);}
链队列完整程序
源代码
#include#include#includetypedef int Elemtype;//队列节点结构typedef struct Linknode{ Elemtype data; //队列节点数据域 struct Linknode *next; //队列next指针域}Linknode;//链队列整体结构typedef struct LinkQueue{ Linknode *front; //链队列首指针 队首指针不带数据 Linknode *rear; //链队列尾指针}LinkQueue;//初始化创建链队列void Create_LinkQueue(LinkQueue *Q){ Q->front = Q->rear = (Linknode*)malloc(sizeof(Linknode)); Q->front->next == NULL;}//链队列元素入队void Enter_LinkQueue(LinkQueue *Q, int e){ Linknode *node = (Linknode*)malloc(sizeof(Linknode)); node->data = e; node->next = NULL; Q->rear->next = node; //原先队列尾指针后继next指向新节点node Q->rear = node; //尾指针重新指向新节点node}//链队列元素出队void Depart_LinkQueue(LinkQueue *Q, int *e){ if(Q->rear == Q->front) return; Linknode *p; p = Q->front->next; //要删除的节点暂存给p *e = p->data; //取出删除队头节点的数据 Q->front->next = p->next; //队头节点的后继next直接跨过删除的节点指向其下一个节点 if(Q->rear == p) //当队列只有一个元素的情况 Q->rear = Q->front; free(p);}//判断是否为空bool IsEmpty(LinkQueue *Q){ return Q->front == Q->rear;}//取队首int Front_LinkQueue(LinkQueue *Q){ if(IsEmpty(Q)){printf("队列为空\n");return -1; } return Q->front->next->data;}int main(){ LinkQueue myQueue; Create_LinkQueue(&myQueue); Enter_LinkQueue(&myQueue, 1); Enter_LinkQueue(&myQueue, 2); Enter_LinkQueue(&myQueue, 3); printf("当前队首元素为 %d \n", Front_LinkQueue(&myQueue)); Elemtype e; Depart_LinkQueue(&myQueue, &e); printf("出队的元素为 %d \n", e); printf("当前队首元素为 %d \n", Front_LinkQueue(&myQueue)); printf("\n所有元素出队:\n"); while(!IsEmpty(&myQueue)){ printf("%d ", Front_LinkQueue(&myQueue)); Depart_LinkQueue(&myQueue, &e); } return 0;}
程序运行结果
-
Wallpaper Engine壁纸提取工具,pkg文件提取静态图片,pkg文件转jpg,pkg文件转png,pkg文件转图像,pkg文件提取图像
Wallpaper壁纸提取工具,将Wallpaper动态壁纸提取为静态壁纸,pkg文件转png,pkg文件转jpg
来源: 世界今热点:[数据结构] 队列 (C语言)
Wallpaper Engine壁纸提取工具,pkg文件提取静态图片,pkg文件转jpg,pkg文件转png,pkg文件转图像,pkg文件提取图像
【速看料】用上自研3.0T发动机 坦克700实车曝光:水泥灰质感十足
天天微速讯:做清洁的噩梦!潮汕女子晒大扫除:一家人出动擦镂空家具
天天简讯:LeetCode.面试题02.05-链表求和-题解分析
当前快讯:春节假期7天免通行费!交通部:目前全国高速公路通行畅通
大批AMD RX 6000挂掉的原因找到了!挖矿、湿度影响
专家:春节期间最好每餐七分饱
环球热文:比苹果良心!微信支付春节福利来了:App Store充值9折
环球最新:毫米波无线投屏带来全新体验 红魔电竞显示器上手
C 忽远忽近的距离【2023牛客寒假算法基础集训营3 】
环球今日报丨戴尔发布新款32寸6K显示器:剑指苹果Pro Display XDR
焦点精选!徐志胜首登春晚:担心在春晚嘴瓢每天练绕口令
当前快看:土耳其上空出现碟形透镜云:恍若UFO、相当震撼
年终奖入手iPhone 14:听我的别贴膜 没啥用
一口一只小苍蝇:不恶心吗?
3小时挪动300米堵哭了!去海南自驾请注意:需预约购票
世界关注:读函数式编程思维笔记02_转变思维
【世界新视野】《塞尔达传说:王国之泪》即将发售 网友抱怨任天堂还没开始宣发
当前观点:广东游客专程来感受-50℃的漠河 有车企趁极寒测试车辆性能
每日消息!张朝阳用物理知识解构《流浪地球2》:吴京听惊讶 竖拇指点赞
【世界报资讯】首发4899元!机械革命推出新款蛟龙5游戏本:锐龙7 7735H+RTX 3050
热点聚焦:10余款皮肤齐上架!玩家深夜把《王者荣耀》充值系统挤崩溃了
学习笔记——SpringMVC消息转换器概述;使用消息转换器处理请求报文;使用消息转换器处理响应报文;使用消息转换器处理Json格式数据
今日热讯:D 宿命之间的对决【2023牛客寒假算法基础集训营3】
用AutoHotkey解决B站客户端缓存视频m4s合并成mp4提示解析失败
天天热门:刚提特斯拉Model Y电池遇故障 五天坏两次!车主“愤怒”要求换新车
近十日全国平均气温为历史第三暖:大部分地区天气利于出行
世界讯息:HGAME2023_WP_WEEK2
双向链表
每日短讯:爱做美甲女生注意了!过年美甲小心致癌突变
实时焦点:2023央视春晚没有贾玲张小斐:此前连续5年登台
苹果着手开发iPhone 16 Pro!灵动岛要扩大
《流浪地球2》首波口碑好评如潮 吴京:希望中国电影以该片为底气
关注:Intel扼杀超频!13代酷睿再也不能“白嫖”了
世界球精选!iPhone 14 Pro系列供需已平衡:之前要等一个多月 一机难求
【环球时快讯】了解Spring
刷掌支付快到了:腾讯新刷掌设备专利发布
最新消息:身家千万老板被骗到缅甸做诈骗:3个月暴瘦40多斤
世界快消息!Lisp的求值规则
每日速讯:需求激增!国内客运航班量连续13天上涨
焦点热门:禁止中国玩家参加炉石赛事引众怒 用户抵制卸载无惧:暴雪态度没缓和
【世界速看料】全力推动首车落地!贾跃亭回应FF落地湖北黄冈:何时归国依旧成谜
环球即时:打工一年享受享受怎么了 HKC 27寸4K 144Hz显示器3449元
每日热讯!2023春节档预售票房破5亿:张艺谋电影《满江红》领跑
世界快消息!我的2022年终总结
全球热议:春节宠物寄养生意火爆!猫狗“标间”599元/天 “总统套房”5400元/月
广州明起向外卖骑手、快递员发“春节补贴”:每人每天150元
【焦点热闻】男子开“电动爹”回东北:200公里充次电 充了14次
【全球独家】微软XGP彻底赢麻了 索尼再次面临“断气”风险
国产最强皮卡!长城山海炮6x6版内饰谍照:相当豪华
世界观速讯丨您是否存在想在浏览器动态编译razor的组件的想法?
Obsidian 插件(一):DataView 的使用
天天短讯!单向循环链表
京东代言人!中国选手谷爱凌夺2023年首个冠军
马斯克没钱了?推特拍卖数百件办公资产:“小蓝鸟”雕像10万美元成交
今日关注:灵山“网红牛”不幸被车撞死:一片狼藉
天天快报!无短板办公利器!联想小新Air 14 Plus图赏
短讯!深圳一公司年会送员工保时捷跑车:还有宝马、特斯拉
全球聚焦:单向链表
全球今头条!商务部:每卖4辆新车就有1辆新能源
TGA年度最佳游戏 《双人成行》Steam新史低:73.26元
微资讯!八核酷睿+满血RTX 3060!机械革命极光Pro图赏
春节档电影票均价7年来首降:你会选择看哪部电影过年?
一加11独家适配!国产魂Like手游《帕斯卡契约》新增高品质震动
国人不识货?本田思域TYPE R因太畅销在日本暂停接单
全球速读:今年这回 我们总可以对春节档有点期待了吧
热消息:雷军回顾2022年:小米13得到大家认可最开心
育碧喜加一:《雷曼:疯狂兔子》免费领!兔年玩疯兔
世界热门:大摆锤高处停摆近10分钟 游乐场回应:两边游客体重相近所致
焦点快报!新年第一月iPhone已降价2次!苹果14首降超千元 国内用户喊真香抄底
每日视点!印度8岁女孩放弃4亿家产出家 看透世俗享乐:从没看过电视
世界热消息:学习笔记——springMVC中视图及视图解析器对象;视图控制器
当前快讯:撕破脸!暴雪禁止中国玩家参加炉石赛事引众怒 国内玩家地址卸载所有游戏
获得版号后首测!米哈游《崩坏:星穹铁道》三测定档1月24日
环球观速讯丨英首相车内讲话未系安全带遭批 IIHS曾做测试:后排不系结果可怕!
今日要闻!《三体》电视剧更新8集 豆瓣评分增至8.1 网友担忧:原创角色正让抠书式还原走形
荣耀MagicBook V 14可升级MagicOS 7.0:新增键鼠共享功能
数据结构:树状数组 学习笔记
环球观热点:Downie V4.6.4 for Mac 视频下载工具
进海南遭世纪大堵车 3小时挪300米?当地回应:前段时间轮渡停航
每日快讯!奥迪胜诉!蔚来在德国被禁止使用“ES6”、“ES8”等名称
世界快消息!卖8万能成爆款?比亚迪海鸥内饰谍照曝光:看齐大哥海豚
当前观察:担心的事发生了 滑雪游客乘坐缆车时坠落!官方回应
环球新资讯:谁能阻挡!比亚迪双线再“扩军”:产能新增或超百万辆
本故事纯属虚构是什么意思?本故事纯属虚构的下一句是什么?
尺子的刻度是什么意思?尺子的刻度是从几开始的?
社会发展的根本动力是什么?社会发展的源泉是什么?
肌底是什么意思?肌底液是干什么用的?
交通问题有哪些?交通问题反馈打什么电话?
ceb文件怎么打开?ceb文件怎么转换成PDF?
水电煤气费一个月大约多少钱?微信怎么交水电煤气费?
华为荣耀3c多少钱一部?华为荣耀3c手机参数
电脑主机噪音大是什么原因?电脑主机噪音大怎么解决?
投影仪灯泡使用寿命是多久?投影仪灯泡机和激光机哪个好?
忍不了!iPhone用户明确拒绝:苹果仍收集隐私数据 说好的正义呢?
荣耀新专利公布:反向无线充电有望进一步普及
要闻:需花1万1 保时捷为经典车提供最新车机:想用导航需再掏一笔
滚动:跟网易闹掰!暴雪禁止中国玩家参加《炉石传说》赛事
视点!极氪001全国首烧?车主洗了个澡 极氪001路边起火