鱼C论坛

 找回密码
 立即注册
查看: 2591|回复: 7

[已解决]数据结构入队的代码不是很理解

[复制链接]
发表于 2020-4-9 18:13:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct
{
    ElemType *base;
    int front;
    int rear;
}
        //初始化队
void InitQueue(cycleQueue *q)
{
    q->base=(ElemType *)malloc(MAXSIZE*sizeof(ElemType));
    if(!q->base)
        exit(0);
    q->front=q->rear=0;
}
        //循环队列 入队
void InsertQueue(cycleQueue *q,ElemType e)
{
    if((q->rear+1)%MAXSIZE==q->front)//判断是否队满
        return;
    q->base[q->rear]=e;//这里就不理解了,只知道是复制
    q->rear=(q->rear+1)%MAXSIZE;//尾指针往后移一位
}
        //出队
void DeleteQueue(cycleQueue *q,ElemType *e)
{
    if(q->rear==q->front)
        return;
    *e=q->base[q->front];
    q->front=(q->front+1)%MAXSIZE;
}
int main()
{
    
    return 0;
}

        //循环队列 入队
void InsertQueue(cycleQueue *q,ElemType e)
{
    if((q->rear+1)%MAXSIZE==q->front)//判断是否队满
        return;
    q->base[q->rear]=e;//这里就不理解了,只知道是复制
    q->rear=(q->rear+1)%MAXSIZE;//尾指针往后移一位
}
现在主要是入队这不是很明白,q->base[q->rear]这个是什么意思,是一个动态数组吗?
小甲鱼哪课讲的是动态数组的相关知识点呀
求大佬解答,谢谢!
最佳答案
2020-4-9 19:01:04
跟动态数组无关,这里就是简单的数组赋值而已啊,q->rear就是一个整形而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-9 19:01:04 | 显示全部楼层    本楼为最佳答案   
跟动态数组无关,这里就是简单的数组赋值而已啊,q->rear就是一个整形而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-9 19:47:26 From FishC Mobile | 显示全部楼层
谢谢,我知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-9 20:34:25 | 显示全部楼层
BngThea 发表于 2020-4-9 19:01
跟动态数组无关,这里就是简单的数组赋值而已啊,q->rear就是一个整形而已

对了,还有一个问题就是为什么那个q->base是一个数组呀,前面结构体里定义的不是一个int *base吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-9 21:02:07 | 显示全部楼层
wht666 发表于 2020-4-9 20:34
对了,还有一个问题就是为什么那个q->base是一个数组呀,前面结构体里定义的不是一个int *base吗

请看你代码的第14行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-9 21:04:24 | 显示全部楼层
wht666 发表于 2020-4-9 20:34
对了,还有一个问题就是为什么那个q->base是一个数组呀,前面结构体里定义的不是一个int *base吗

*base的作用应该和base[]差不多   数组作为函数的参数相当于指针变量吧
fun(int arr[])=fun(int *arr)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-10 14:06:55 | 显示全部楼层
BngThea 发表于 2020-4-9 21:02
请看你代码的第14行

我就是那个分配空间不懂是怎么分配的,所以才问是不是动态数组,我不理解为什么那样就是一个数组了,望大佬解释一下,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 14:37:00 | 显示全部楼层
wht666 发表于 2020-4-10 14:06
我就是那个分配空间不懂是怎么分配的,所以才问是不是动态数组,我不理解为什么那样就是一个数组了,望大 ...

申请了一个空间,可以当做一个数组来使用了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 01:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表