菠萝和凤梨有什么区别| 6月16是什么星座| 什么叫辅酶q10| 孕妇无创检查是什么| 山药有什么功效和作用| 双子座和什么星座最配| 眼皮发肿是什么原因| 法兰克穆勒什么档次| 父亲节出什么生肖| 其余是什么意思| 拉拉什么意思| 肾阴阳两虚吃什么中成药| 醉酒当歌什么意思| 羞耻是什么意思| 为什么贫血| 紫癜是一种什么病| 剔除是什么意思| 天秤座是什么星座| 一片狼藉是什么意思| 为什么来我家| 什么是穿刺手术| 王景读什么| 叉烧是什么肉做的| 什么原因导致胎停| 三道鳞是什么鱼| 庆五行属什么| 阴茎不硬是什么原因| 菠菜什么时候种最合适| 三月是什么季节| 孕妇吃什么好| 4.5是什么星座| 肝囊肿是什么| 屌丝是什么| 青头鸭和什么煲汤最好| 米咖色是什么颜色| 放臭屁是什么原因| 盐酸盐是什么| 牙痛是什么原因引起的| 金牛座是什么象星座| 胆囊壁固醇沉积是什么意思| 益母草能治什么病| 桑拓木命是什么意思| 没有子宫会有什么影响| 更年期出汗多是什么原因| 汉族为什么叫汉族| 有炎症吃什么药| 尿酸高有什么症状| 慢性炎症是什么| 为什么咳嗽| 什么鱼好养| 出格是什么意思| 尿崩症是什么意思| 为什么水能灭火| 外地车进北京有什么限制| 一只耳朵响是什么原因| 上面一个四下面一个正念什么| 什么的蘑菇| 石家庄有什么好玩的景点| 羊水少了对宝宝有什么影响| 星字属于五行属什么| 请问今晚买什么生肖| 胃炎是什么原因引起的| 染色体是由什么组成的| 壁报交流是什么意思| pnc是什么意思| 婴儿足底采血查什么| 凝是什么意思| 大脑镰钙化灶是什么意思| 脚手发热是什么原因| 什么然而生| 囊肿是什么意思| 泰国的钱叫什么| 学位证是什么| 2009年五行属什么| 七月十八是什么日子| 1218是什么星座| 细菌感染引起的发烧吃什么药| 顺流而下什么意思| 什么牌子的保温杯好| 为什么来我家| 掉发是什么原因| 感染hpv有什么症状| 贫血是什么原因| 男人少精弱精吃什么补最好| 经常熬夜吃什么好| 什么是龋齿| 植树节什么时候| 三年级用什么笔| 电梯房什么楼层最好| 吃黑豆有什么好处和坏处| 肺炎吃什么消炎药| 吃猪肝补什么| 身体缺钾吃什么可以补充| 五福临门是什么意思| 肠胀气是什么原因引起的| swag什么意思| 女女叫什么| 颈动脉斑块是什么意思| 贫血吃什么补血最快| 秦始皇原名叫什么| 精液是什么组成的| 跟着好人学好人下句是什么| 吃饭咬到舌头什么原因| 痛风会在膝盖什么位置| 8月23是什么星座的| 韩国欧巴是什么意思| 为什么会得甲沟炎| qs认证是什么意思| 子宫切除对女人有什么影响| 有什么无什么| 腿部浮肿吃什么药| 小姑子是什么关系| 成因是什么意思| 朕是什么时候开始用的| 晚上睡不着是什么原因引起的| 动漫是什么意思| 狮子座和什么座最配对| 消化不良吃什么食物| 姚明什么时候退役的| 童心未泯是什么意思| 毁三观是什么意思啊| 降龙十八掌最后一掌叫什么| 14k金是什么意思| 茯苓泡水喝有什么功效| 女人在什么时候最想男人| wing是什么意思| 吸烟有害健康为什么国家还生产烟| 氧化剂是什么| 灭活疫苗是什么意思| 7.14号是什么节日| bp在医学上是什么意思| 拉水便是什么原因| 雪媚娘是什么| 湿气是什么意思| 肺占位病变是什么意思| 晚上9点到10点是什么时辰| 戒掉手淫有什么好处| 左胸下面是什么部位| 嘌呤是什么意思| 孕期血糖高有什么症状| 活力是什么意思| 尿维生素c阳性是什么意思| 亦或是什么意思| 发现新大陆是什么意思| 应接不暇的暇是什么意思| 手经常出汗是什么原因| 漫游是什么| psa检查是什么意思| 建兰什么时候开花| 竹心泡水喝有什么功效| 结婚送什么| 佛家思想的核心是什么| 低血糖有什么危害| 张柏芝和谢霆锋为什么离婚| 焦急的什么| 朱是什么颜色| 洗牙喷砂是什么意思| 肛门出血用什么药| 王毅是什么级别| 今天出生的男宝宝取什么名字好| 法国的国鸟是什么| 老年人手抖是什么原因| 鸡蛋为什么不能放冰箱| 生物闹钟是什么意思| 具体是什么意思| 急性肠胃炎可以吃什么| 迪拜货币叫什么| 吃软饭是什么意思| 扁桃体结石挂什么科| 手脚爱出汗是什么原因| 内膜薄吃什么补得最快| 午火是什么火| 豌豆是什么豆| 为什么会早产| 脚气是什么菌感染| 九月29号是什么星座| 打鼾是什么意思| 卡点是什么意思| 反胃恶心想吐吃什么药| 春节的习俗是什么| 形而上学什么意思| 孔子是什么学派的创始人| 滋润是什么意思| 雪莲果什么季节成熟| 沥水是什么意思| 艺体生是什么意思| 医学五行属什么| 9月18日是什么日子| 西瓜虫喜欢吃什么| 没事找事是什么意思| 520是什么节日| 贫血检查查什么项目| 七月属什么生肖| fl是什么| dd是什么意思| 双鱼女和什么座最配对| tp代表什么| 10月底是什么星座| 舌苔厚吃什么药| 抗ccp抗体高说明什么| 做糖耐前一天需要注意什么| 吃什么增肥最快| 兔死狐悲指什么生肖| 平安夜什么时候吃苹果| 中元节是什么| 戴银镯子变黑是什么原因| 检测毛囊去什么医院| 顾影自怜是什么意思| 刺身是什么意思| 早上八点到九点属于什么时辰| 护理学什么| 心电图st段改变什么意思| 甘油三酯高吃什么食物降得快| 女人吃玛卡有什么好处| 石榴石一般什么价位| 亚子什么意思| 再生障碍性贫血是什么病| mc是什么意思啊| 小孩子黑眼圈重是什么原因| 香蕉皮擦脸有什么作用与功效| 聘书是什么| 寄居蟹喜欢吃什么| 做梦吃肉是什么征兆| 歇菜是什么意思| 7月去青海带什么衣服| ng是什么单位| 乳糖不耐受吃什么药| 2楼五行属什么| 高血压可以吃什么肉| 四大发明是什么| 轻断食是什么意思| 洋葱配什么菜炒好吃| 喝什么提神| 什么是粒子| 光宗耀祖是什么意思| 什么补气血| 女人抖腿代表什么意思| 自来鸟是什么兆头| 腐女是什么| 5月1号是什么星座| 军用水壶为什么是铝的| 性激素是查什么| 7月20日是什么星座| 为什么会低血压| 反应是什么意思| 疏肝解郁喝什么茶| 打黄体酮针有什么副作用| 女性睾酮高说明什么| 渴望是什么意思| 图灵是什么意思| 鼹鼠是什么动物| 排比句是什么意思| 突然吐血是什么原因| 什么货币最值钱| 为什么叫水浒传| 满目苍夷是什么意思| 教导是什么意思| 左脸长痘是什么原因| 剖腹产第三天可以吃什么| 晚上吃什么减肥快| hpv是什么东西| 梦见买猪肉是什么预兆| 腿困是什么原因引起的| 什么是牙结石| 百度
打印
[DemoCode下载]

从CosmoSport到新Axela马自达的赛道激情从未停止

[复制链接]
1044|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sanfuzi|  楼主 | 2025-2-20 19:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.结构体设计
结构说明:使用单链表作为基础的数据结构 链表结点存储数据和下一个结点地址

但是队列要可以访问队头和队尾 函数需要传两个指针参数 所以单独设计一个结构体存储这两个结点指针front和rear

再创建一个size记录队列结点个数

typedef int QueueNodeDataType;
typedef struct QListNode
{
        struct QListNode* _pNext;
        QueueNodeDataType _data;
}QNode;

typedef struct Queue
{
        QNode* _front;
        QNode* _rear;
        int _size;
}Queue;
2.功能设计
2.1 初始化: 将队列的front和rear都置为空 队列内有效元素置为0
void QueueInit(Queue* q)
{
        assert(q);
        q->_front = NULL;
        q->_rear = NULL;
        q->_size = 0;
}
2.2 插入元素设计 队尾入队列:判断front为不为空
1.为空则说明front和rear都要置为newNode

2.不为空则说明只需要改变rear即可 申请新节点链接到链表中 改变rear

void QueuePush(Queue* q, QueueNodeDataType val)
{
        assert(q);
        QNode* newNode = (QNode*)malloc(sizeof(QNode));
        assert(newNode);
        newNode->_data = val;
        newNode->_pNext = NULL;
        if (q->_front == NULL)//队列没有结点
        {
                q->_front = q->_rear = newNode;
        }
        else
        {
                q->_rear->_pNext = newNode;
                q->_rear = newNode;
        }
        q->_size++;
}
2.3 队头出队列:
判断队列为不为空 为空则返回 不为空分两种情况

1.只有一个结点 将front和rear都置为NULL

2.多个结点 只将front指向它的下一个结点即可

void QueuePop(Queue* q)
{
        assert(q);
        if (q->_front == NULL)
        {
                return;
        }
        else
        {
                if (q->_front == q->_rear)//说明只有一个结点
                {
                        free(q->_front);
                        q->_front = q->_rear = NULL;
                }
                else
                {
                        QNode* cur = q->_front->_pNext;
                        free(q->_front);
                        q->_front = cur;
                }
        }
        q->_size--;
}
2.4 判空:为空返回true 不为空返回false
bool QueueEmpty(Queue* q)
{
        assert(q);
        return q->_front == NULL;
}
2.5 取队列头元素和取队列尾部元素:判断队列为空的情况
QueueNodeDataType QueueFront(Queue* q)
{
        assert(q);
        assert(q->_front);
        return q->_front->_data;
}
QueueNodeDataType Queuerear(Queue* q)
{
        assert(q);
        assert(q->_rear);
        return q->_rear->_data;
}
2.6 返回队列有效元素个数:返回size
int QueueSize(Queue* q)
{
        assert(q);
        return q->_size;
}
2.7 销毁队列:遍历队列 销毁结点
void QueueDestory(Queue* q)
{
        assert(q);
        QNode* cur = q->_front;
        while (cur)
        {
                QNode* tmp = cur;
                cur = cur->_pNext;
                free(tmp);
        }
        q->_front = q->_rear = NULL;

}
整体代码
Queue.h
#pragma once
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include<stdbool.h>

typedef int QueueNodeDataType;
typedef struct QListNode
{
        struct QListNode* _pNext;
        QueueNodeDataType _data;
}QNode;

typedef struct Queue
{
        QNode* _front;
        QNode* _rear;
        int _size;
}Queue;

void QueueInit(Queue* q);
void QueuePush(Queue* q, QueueNodeDataType val);
void QueuePop(Queue* q);
bool QueueEmpty(Queue* q);
int QueueSize(Queue* q);
QueueNodeDataType QueueFront(Queue* q);
QueueNodeDataType Queuerear(Queue* q);
void QueueDestory(Queue* q);
Queue.c
#include"queue.h"
void QueueInit(Queue* q)
{
        assert(q);
        q->_front = NULL;
        q->_rear = NULL;
        q->_size = 0;
}
void QueuePush(Queue* q, QueueNodeDataType val)
{
        assert(q);
        QNode* newNode = (QNode*)malloc(sizeof(QNode));
        assert(newNode);
        newNode->_data = val;
        newNode->_pNext = NULL;
        if (q->_front == NULL)//队列没有结点
        {

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

3319

帖子

2

粉丝
dna里面有什么 一直想吐是什么原因 今天农历什么日子 阴虚火旺吃什么水果 矗读什么
水代表什么 法医是干什么的 什么样的树木 嘛呢是什么意思 豆汁什么味道
镜子碎了有什么征兆吗 趣味相投是什么意思 享受低保需要什么条件 压缩性骨折是什么意思 感冒应该挂什么科
什么钱最不值钱 1992年属猴的是什么命 女人脚底有痣代表什么 led什么意思 什么是强势的女人
处是什么结构hcv7jop6ns4r.cn 小蜘蛛吃什么hcv8jop5ns5r.cn 吃饭就吐是什么原因hcv8jop8ns2r.cn 皇协军是什么意思hcv8jop3ns7r.cn 初心是什么意思hcv8jop6ns1r.cn
小便失禁是什么原因男性hcv9jop4ns0r.cn 做梦梦见大火是什么意思0735v.com 杏仁有什么作用和功效hcv8jop3ns0r.cn 秦国是现在的什么地方hcv9jop8ns0r.cn 宫外孕破裂有什么症状kuyehao.com
口臭是什么原因造成的hcv8jop5ns0r.cn 什么时间吃水果最好hcv8jop7ns1r.cn 九月二十三是什么星座adwl56.com 乙肝通过什么途径传染hcv8jop1ns7r.cn 突然头晕眼花站不稳是什么原因hcv8jop0ns0r.cn
曲苑杂坛为什么停播hcv8jop4ns0r.cn 女性为什么会肾结石0735v.com 月朔是什么意思hanqikai.com ph值高是什么原因hcv8jop7ns8r.cn 灵官爷是什么神hcv8jop2ns6r.cn
百度