데이터 구조 - 대기 열 - 순서 저장 완전 실행 코드

3371 단어
데이터 구조 - 대기 열 - 순서 저장 완전 실행 코드
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 20 /*           */

typedef int Status;
/* QElemType          ,     int */
typedef int QElemType;

/*             */
typedef struct
{
	QElemType data[MAXSIZE];
	int front;    	/*     */
	int rear;		/*    ,     ,              */
}SqQueue;

/*         Q */
Status InitQueue(SqQueue *Q)
{
	Q->front=0;
	Q->rear=0;
	return  OK;
}

Status visit(QElemType c)
{
	printf("%d ",c);
	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; } /* , 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 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; } int main() { int opp, j; SqQueue Q; QElemType d; InitQueue(&Q); printf("
1.
2.
3.
4. "); printf("
5.
6.
7. "); printf("
0.

"); while(opp != '0') { scanf("%d",&opp); switch(opp) { case 1: srand(time(0)); for(j=1; j<=10; j++) { d = rand()%100+1; EnQueue(&Q,d); } QueueTraverse(Q); break; case 2: QueueTraverse(Q); break; case 3: printf(" :"); scanf("%d", &d); EnQueue(&Q,d); QueueTraverse(Q); break; case 4: DeQueue(&Q,&d); printf(" %d
",d); break; case 5: printf(" ?%u(1: 0: )
",QueueEmpty(Q)); break; case 6: ClearQueue(&Q); printf(" , ?%u(1: 0: )
",QueueEmpty(Q)); break; case 7: printf(" : %d
",QueueLength(Q)); break; case 0: exit(0); } } return 0; }

공부 하 는 길에 당신 과 함께 격려 합 니 다.

좋은 웹페이지 즐겨찾기