循环队列实验报告
{ElemType *Elem;
int front;
int rear;
}CirQueue;
循环队列的初始化:
Status InitQueue(CirQueue &Q)
{Q.Elem=(ElemType *)malloc(MAX*sizeof(ElemType));
if(!Q.Elem)return(OVERFLOW);
教师签字
日期
}
void QueueOutput(CirQueue Q)
{for(int i=Q.front;i!=Q.rear;i=(i+1)%MAX)
printf("%5d",Q.Elem[i]);
printf("\n");}
main()
{CirQueue Q;
ElemType e;
int i,n,j,k;
InitQueue(Q);
Q.rear=(Q.rear+1)%MAX;
return OK;
}
Status DeQueue(CirQueue &Q,ElemType &e)
{ if(Q.rear==Q.front)return ERROR;
e=Q.Elem[Q.front];
Q.front=(Q.front+1)%MAX;
return OK;
判断队满条件:(rear+1) % maxSize == front
3.算法描述(可附页)
#include "stdio.h"
#include "malloc.h"
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define TRUE 1
#define FALSE 0
Q.front=(Q.front+1)% MAX_QUEUE_SIZE ;
return OK ;
}
队头指针进1: front = (front+1) % maxSize;
队尾指针进1: rear = (rear+1) % maxSize;
队列初始化:front = rear = 0;
队空条件:front == rear;
scanf("%d",&j);
while(i<=j)
{printf("元素个数不够,重新输入出队个数\n");
scanf("%d",&j);}
for(i=1;i<=j;i++)
DeQueue(Q, e);
printf("出队后为:");
QueueOutput(Q);}
4.实验调试结果
实验小结
实验成绩
typedef int Status;
#define MAX 10
typedef int ElemType;
typedef struct
{ElemType *Elem;
int front;
int rear;
}CirQueue;
Status InitQueue(CirQueue &Q)
{Q.Elem=(ElemType *)malloc(MAX*sizeof(ElemType));
if(!Q.Elem)
return(OVERFLOW);
Q.front=Q.rear=0;
return OK;
}
Status EnQueue(CirQueue &Q,ElemType &e)
{if( (Q.rear+1)%MAX==Q.front )return ERROR;
Q.Elem[Q.rear] = e;
实验报告(二)
姓名
学号
班级
实验名称
循环队列的基本操作
实验日期
机房
实验报告
1.说明自己在实验操作过程中遇到的难点及解决方法
难点:
1.循环队列的初始化,入队,出队的操作。
解决方法:
1.根据书上以及ppt上的知识点,结合实际
2.说明实验中所涉及的知识点
队列存储结构的结构体定义:
typedef struct
Q.front=Q.rear=0;
return Oatus Insert_CirQueue(SqQueue Q , ElemType e)
{if((Q.rear+1)%MAX_QUEUE_SIZE== Q.front)
return ERROR;
Q.Queue_array[Q.rear]=e ;
Q.rear=(Q.rear+1)% MAX_QUEUE_SIZE ;
return OK; }
循环队列的出队操作:
Status Delete_CirQueue(SqQueue Q, ElemType *x )
{if (Q.front+1== Q.rear)
return ERROR ;
*x=Q.Queue_array[Q.front];
printf("请输入要入队的队列元素个数:");
scanf("%d",&n);
printf("请输入元素:");
for(i=1;i<=n;i++)
{ scanf("%d",&k);
EnQueue(Q,k);}
printf("原队列为:");
QueueOutput(Q);
printf("请输入要出队的队列元素个数:\n");