25. 데이터 구조 - 선형 표 - 순서 대기 열
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "time.h"
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 20 /* */
typedef int Status;
typedef int QElemType; /* QElemType , int */
/* */
typedef struct
{
QElemType data[MAXSIZE];
int front; /* */
int rear; /* , , */
}SqQueue;
Status visit(QElemType c)
{
printf("%d ",c);
return OK;
}
/* Q */
Status InitQueue(SqQueue *Q)
{
Q->front=0;
Q->rear=0;
return OK;
}
/* Q */
Status ClearQueue(SqQueue *Q)
{
Q->front=Q->rear=0;
return OK;
}
/* Q , TRUE, FALSE */
Status QueueEmpty(SqQueue Q)
{
if(Q.front==Q.rear) /* */
return TRUE;
else
return FALSE;
}
/* Q , */
int QueueLength(SqQueue Q)
{
return (Q.rear-Q.front+MAXSIZE)%MAXSIZE;
}
/* , e Q , OK, ERROR */
Status GetHead(SqQueue Q,QElemType *e)
{
if(Q.front==Q.rear) /* */
return ERROR;
*e=Q.data[Q.front];
return OK;
}
/* , e Q */
Status EnQueue(SqQueue *Q,QElemType e)
{
if ((Q->rear+1)%MAXSIZE == Q->front) /* */
return ERROR;
Q->data[Q->rear]=e; /* e */
Q->rear=(Q->rear+1)%MAXSIZE;/* rear , */
/* */
return OK;
}
/* , Q , e */
Status DeQueue(SqQueue *Q,QElemType *e)
{
if (Q->front == Q->rear) /* */
return ERROR;
*e=Q->data[Q->front]; /* e */
Q->front=(Q->front+1)%MAXSIZE; /* front , */
/* */
return OK;
}
/* Q */
Status QueueTraverse(SqQueue Q)
{
int i;
i=Q.front;
while((i+Q.front)!=Q.rear)
{
visit(Q.data[i]);
i=(i+1)%MAXSIZE;
}
printf("
");
return OK;
}
int main()
{
Status j;
int i=0,l;
QElemType d;
SqQueue Q;
InitQueue(&Q);
printf(" , ?%u(1: 0: )
",QueueEmpty(Q));
printf(" ( %d ),-1 : ",MAXSIZE-1);
do
{
/* scanf("%d",&d); */
d=i+100;
if(d==-1)
break;
i++;
EnQueue(&Q,d);
}while(i0)
printf(" %d :
",l-2);
while(QueueLength(Q)>2)
{
DeQueue(&Q,&d);
printf(" %d
",d);
}
j=GetHead(Q,&d);
if(j)
printf(" : %d
",d);
ClearQueue(&Q);
printf(" , ?%u(1: 0: )
",QueueEmpty(Q));
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.