队列也是操作受限的线性表,采用先进先出的方式 队列也有两种存储方式分别为顺序顺序和链式存储 队列的顺序表示–使用一位数组 下面是队列的定义 循环队列在逻辑上实现了头尾相连,不会出现假溢出
#define QElemtype int
#define maxsize 100
typedef struct
{
QElemtype
*base
;
int front
;
int real
;
}SqQueue
;
初始化
void InitSqQueue(SqQueue
&Q
)
{
Q
.base
=(QElemtype
*)malloc(maxsize
*sizeof(QElemtype
));
if(!Q
.base
)
exit(0);
Q
.front
=Q
.real
=0;
}
进队
void SqQueuein(SqQueue
&Q
,QElemtype e
)
{
if((Q
.real
+1)%maxsize
==Q
.front
)
{
printf("队满");
exit(0);
}
Q
.base
[Q
.real
]=e
;
Q
.real
=(Q
.real
+1)%maxsize
;
}
出队
void SqQueueout(SqQueue
&Q
,QElemtype
&e
)
{
if(Q
.front
==Q
.real
)
{
printf("队空");
exit(0);
}
e
=Q
.base
[Q
.front
];
Q
.front
=(Q
.front
+1)%maxsize
;
}
转载请注明原文地址: https://mac.8miu.com/read-496238.html