鱼C论坛

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

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

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

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

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

x
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAXSIZE 100
  4. typedef int ElemType;
  5. typedef struct
  6. {
  7.     ElemType *base;
  8.     int front;
  9.     int rear;
  10. }
  11.         //初始化队
  12. void InitQueue(cycleQueue *q)
  13. {
  14.     q->base=(ElemType *)malloc(MAXSIZE*sizeof(ElemType));
  15.     if(!q->base)
  16.         exit(0);
  17.     q->front=q->rear=0;
  18. }
  19.         //循环队列 入队
  20. void InsertQueue(cycleQueue *q,ElemType e)
  21. {
  22.     if((q->rear+1)%MAXSIZE==q->front)//判断是否队满
  23.         return;
  24.     q->base[q->rear]=e;//这里就不理解了,只知道是复制
  25.     q->rear=(q->rear+1)%MAXSIZE;//尾指针往后移一位
  26. }
  27.         //出队
  28. void DeleteQueue(cycleQueue *q,ElemType *e)
  29. {
  30.     if(q->rear==q->front)
  31.         return;
  32.     *e=q->base[q->front];
  33.     q->front=(q->front+1)%MAXSIZE;
  34. }
  35. int main()
  36. {
  37.    
  38.     return 0;
  39. }
复制代码


        //循环队列 入队
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就是一个整形而已
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-9 19:01:04 | 显示全部楼层    本楼为最佳答案   
跟动态数组无关,这里就是简单的数组赋值而已啊,q->rear就是一个整形而已
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-9 19:47:26 From FishC Mobile | 显示全部楼层
谢谢,我知道了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

对了,还有一个问题就是为什么那个q->base是一个数组呀,前面结构体里定义的不是一个int *base吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

请看你代码的第14行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

*base的作用应该和base[]差不多   数组作为函数的参数相当于指针变量吧
  1. fun(int arr[])=fun(int *arr)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我就是那个分配空间不懂是怎么分配的,所以才问是不是动态数组,我不理解为什么那样就是一个数组了,望大佬解释一下,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

申请了一个空间,可以当做一个数组来使用了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-13 11:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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