小白想问一下,循环队列这样定义的,在初始化时的参数也只有最大范围(PQueue CreatQueue(int Maxsize)),该怎么创建这个循环队列呢,我在函数里定义一个PQueue q;的话又需要初始化。求求大佬解决一下我的疑问。
typedef struct queue
{
DataType* base;
int front;
int rear;
int maxsize;
}Queue, *PQueue;
PQueue CreatQueue(int Maxsize)
给你提供以下思路
创建队列:
1.检查Maxsize的合法姓,如果小于等于0,可直接返回 NULL,合法再做第2步
2.分配一个stuct queue大小的内存。
3.maxsize按传入的Maxsize值,front和rear为Null,base为null
4.返回这申请的内存的指针。。
这个指针做为队列的头和尾要被保存。当你需要插入结点时的逻辑需要做为参数传进去
insertQueue(PQueue head, DataType *base)
if(front为空表示没有结点){
直接分配DataType内存,放到base里面。front和rear都等于自已的指针。(相当于队列中有了一个数据)
}else{
已有数据。则要分配一个queue单元。
head的front指向这个新分配的单元。
把新分配单元的rear指向head
}
希望有对你有所帮助,欢迎关注我的博客,我会持续发布技术文章
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632