数据结构入队的代码不是很理解
#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=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+1)%MAXSIZE;
}
int main()
{
return 0;
}
//循环队列 入队
void InsertQueue(cycleQueue *q,ElemType e)
{
if((q->rear+1)%MAXSIZE==q->front)//判断是否队满
return;
q->base=e;//这里就不理解了,只知道是复制
q->rear=(q->rear+1)%MAXSIZE;//尾指针往后移一位
}
现在主要是入队这不是很明白,q->base这个是什么意思,是一个动态数组吗?
小甲鱼哪课讲的是动态数组的相关知识点呀
求大佬解答,谢谢! 跟动态数组无关,这里就是简单的数组赋值而已啊,q->rear就是一个整形而已 谢谢,我知道了 BngThea 发表于 2020-4-9 19:01
跟动态数组无关,这里就是简单的数组赋值而已啊,q->rear就是一个整形而已
对了,还有一个问题就是为什么那个q->base是一个数组呀,前面结构体里定义的不是一个int *base吗 wht666 发表于 2020-4-9 20:34
对了,还有一个问题就是为什么那个q->base是一个数组呀,前面结构体里定义的不是一个int *base吗
请看你代码的第14行 wht666 发表于 2020-4-9 20:34
对了,还有一个问题就是为什么那个q->base是一个数组呀,前面结构体里定义的不是一个int *base吗
*base的作用应该和base[]差不多 数组作为函数的参数相当于指针变量吧
fun(int arr[])=fun(int *arr) BngThea 发表于 2020-4-9 21:02
请看你代码的第14行
我就是那个分配空间不懂是怎么分配的,所以才问是不是动态数组,我不理解为什么那样就是一个数组了,望大佬解释一下,谢谢 wht666 发表于 2020-4-10 14:06
我就是那个分配空间不懂是怎么分配的,所以才问是不是动态数组,我不理解为什么那样就是一个数组了,望大 ...
申请了一个空间,可以当做一个数组来使用了
页:
[1]