循环队列初始化函数的问题

小白想问一下,循环队列这样定义的,在初始化时的参数也只有最大范围(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