头文件和结点定义
初始化
判空
入队
入队方式一
入队方式二
出队
出队方式一
出队方式二
#include<stdio.h>
#include<stdlib.h>
#define MaxSize 4
typedef int ElemType
;
typedef struct {
ElemType data
[MaxSize
];
int front
, rear
;
}SqQueue
;
void InitQueue(SqQueue
& Q
) {
Q
.front
= Q
.rear
= 0;
}
bool
IsEmpty(SqQueue Q
) {
if (Q
.front
== Q
.rear
)
return true
;
else
return false
;
}
bool
EnQueue(SqQueue
& Q
, ElemType elem
) {
if ((Q
.rear
+ 1) % MaxSize
== Q
.front
)
return false
;
Q
.rear
= (Q
.rear
+ 1) % MaxSize
;
Q
.data
[Q
.rear
] = elem
;
return true
;
}
bool
DeQueue(SqQueue
& Q
, ElemType
& elem
) {
if (Q
.front
== Q
.rear
)
return false
;
Q
.front
= (Q
.front
+ 1) % MaxSize
;
elem
= Q
.data
[Q
.front
];
return true
;
}
int main()
{
SqQueue Q
;
ElemType elem
;
InitQueue(Q
);
if (IsEmpty(Q
))
printf("队列为空\n");
else
printf("队列不空\n");
if (DeQueue(Q
, elem
))
printf("出队元素为:%d\n", elem
);
else
printf("出队失败\n");
EnQueue(Q
, 5);
EnQueue(Q
, 4564);
EnQueue(Q
, 11231);
EnQueue(Q
, 77);
if (DeQueue(Q
, elem
))
printf("出队元素为:%d\n", elem
);
else
printf("出队失败\n");
if (DeQueue(Q
, elem
))
printf("出队元素为:%d\n", elem
);
else
printf("出队失败\n");
if (IsEmpty(Q
))
printf("队列为空\n");
else
printf("队列不空\n");
return 0;
}
转载请注明原文地址: https://mac.8miu.com/read-79029.html