队列----数据结构
创始人
2025-06-01 08:40:55
0

在这里插入图片描述

队列

  • 🔆队列的概念
  • 🔆队列的结构
  • 🔆队列的实现
  • 🔆设计循环队列
    • 🔆循环队列的结构
    • 🔆循环队列的实现
  • 🔆结语

🔆队列的概念

  • 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)
  • 入队列:进行插入操作的一端称为队尾
  • 出队列:进行删除操作的一端称为队头

🔆队列的结构

在这里插入图片描述

🔆队列的实现

链式队列gitt代码链接

队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。

在这里插入图片描述

🔆设计循环队列

🔆循环队列的结构

我们有时还会使用一种队列叫循环队列。如操作系统课程讲解生产者消费者模型时可以就会使用循环队列。环形队列可以使用数组实现,也可以使用循环链表实现。

在这里插入图片描述

通常空出来一个节点,不用来存放数据,用于判断队列的空和满。
在这里插入图片描述

🔆循环队列的实现

#define _CRT_SECURE_NO_WARNINGS 1#include 
#include 
#include 
#include typedef struct {int* a;int front;int rear;int k;
} MyCircularQueue;MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* cq = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));cq->a = (int*)malloc(sizeof(int) * (k + 1));cq->front = cq->rear = 0;cq->k = k;return cq;
}bool myCircularQueueIsEmpty(MyCircularQueue* obj) {assert(obj);return (obj->front == obj->rear);
}bool myCircularQueueIsFull(MyCircularQueue* obj) {assert(obj);return ((obj->rear + 1) % (obj->k + 1) == (obj->front));
}bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {assert(obj);if (myCircularQueueIsFull(obj)) {return false;}obj->a[obj->rear++] = value;obj->rear %= (obj->k + 1);return true;
}bool myCircularQueueDeQueue(MyCircularQueue* obj) {assert(obj);if (myCircularQueueIsEmpty(obj)) {return false;}obj->front++;obj->front %= (obj->k + 1);return true;
}int myCircularQueueFront(MyCircularQueue* obj) {assert(obj);if (myCircularQueueIsEmpty(obj)) {return -1;}else {return obj->a[obj->front];}
}int myCircularQueueRear(MyCircularQueue* obj) {assert(obj);if (myCircularQueueIsEmpty(obj)) {return -1;}else {return obj->a[((obj->rear) + (obj->k)) % ((obj->k) + 1)];}
}void myCircularQueueFree(MyCircularQueue* obj) {assert(obj);free(obj->a);obj->a = NULL;free(obj);
}

🔆结语

到这里这篇博客已经结束啦。
这份博客👍如果对你有帮助,给博主一个免费的点赞以示鼓励欢迎各位🔎点赞👍评论收藏⭐️,谢谢!!!
如果有什么疑问或不同的见解,欢迎评论区留言欧👀

相关内容

热门资讯

236.88%,公募基金年度收... 截至12月26日,公募主动权益基金年内最高收益达到236.88%,不仅锁定年度冠军位置,还刷新纪录,...
展出米芾作品遭质疑 江西省博物... 中新网12月28日电 据江西省博物馆微信公众号消息,江西省博物馆28日发布声明称,近日,有观众质疑江...
重塑银保产品逻辑,海保人寿鑫玺... 近日,海保人寿旗下创新产品“鑫玺越(鑫享版)终身寿险”凭借其在财富规划与终身保障领域的卓越表现,成功...
吉宏股份:股东西藏永悦诗超企业... 新京报贝壳财经讯 吉宏股份(02603)发布公告,公司于近日收到控股股东、实际控制人庄浩女士及其一致...
锚定全球唯一,核聚变寡头,接住... 可控核聚变的信号枪,正中西部超导靶心!11月12日,合肥物质院等离子体所密集发布了13个亿的氚工厂招...
老乡别慌,涨上天了 图: Jean Jullien 我两年前聊过一位朋友,在巴厘岛盖房子,租给外国人挣租金。 这两天周末...
“投行第一美女”判了10年!收... 房企发美元债的灰色交易,终于 暴露出来了。最近 , 中信建投投行人员被抓的消息,在金融圈传得沸沸扬扬...
一人独中超127亿元彩票! 新闻荐读 当地时间24日晚间,美国强力球彩票开出超18亿美元的头奖,为美国历史上第二高已中奖的彩票头...
“10年体检未提示患癌”,爱康... 红星资本局年终盘点·2025关键角色③“北京市卫健委已经出声明了,爱康是无责的。”近日,当红星资本局...
中国神华:持股52%子公司北海... 新京报贝壳财经讯 中国神华公告称,其持股约52%的控股子公司北海电力二期扩建工程4号机组通过168小...