diff --git a/_02.栈与队列/05顺序队列_Queue.c b/_02.栈与队列/05顺序队列_Queue.c deleted file mode 100644 index 1639e84..0000000 --- a/_02.栈与队列/05顺序队列_Queue.c +++ /dev/null @@ -1,156 +0,0 @@ -#include "stdio.h" -#include "stdlib.h" -#include "io.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; -} - -/* в,eQĶͷԪ,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("\n"); - return OK; -} - -int main() -{ - Status j; - int i=0,l; - QElemType d; - SqQueue Q; - InitQueue(&Q); - printf("ʼк󣬶пշ%u(1: 0:)\n",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Ԫ:\n",l-2); - while(QueueLength(Q)>2) - { - DeQueue(&Q,&d); - printf("ɾԪֵΪ%d\n",d); - } - - j=GetHead(Q,&d); - if(j) - printf("ڶͷԪΪ: %d\n",d); - ClearQueue(&Q); - printf("նк, пշ%u(1: 0:)\n",QueueEmpty(Q)); - return 0; -} - diff --git a/_02.栈与队列/_e.顺序队列.c b/_02.栈与队列/_e.顺序队列.c index f093e2a..f338347 100644 --- a/_02.栈与队列/_e.顺序队列.c +++ b/_02.栈与队列/_e.顺序队列.c @@ -2,7 +2,7 @@ * @Author: Xu Bai * @Date: 2019-07-02 22:06:31 * @LastEditors: Xu Bai - * @LastEditTime: 2019-07-02 22:32:59 + * @LastEditTime: 2019-07-02 22:39:29 */ #include "stdlib.h" #include "io.h" @@ -78,6 +78,7 @@ Status EnQueue(SqQueue *Q, ElemType e) if ((Q->rear + 1) % MAXSIZE == Q->front) { // + printf("full!\n"); return ERROR; } else @@ -92,6 +93,7 @@ Status DeQueue(SqQueue *Q, ElemType *e) { if (Q->front == Q->rear) { + printf("Empty!\n"); return ERROR; } *e = Q->data[Q->front]; @@ -111,23 +113,22 @@ Status QueueTraverse(SqQueue Q) return OK; } -int main(){ +int main() +{ ElemType e; SqQueue q; InitQueue(&q); - int i ; + int i; printf("EnQueue!\n"); - for ( i = 0; i < MAXSIZE; i++) + for (i = 0; i < MAXSIZE; i++) { - EnQueue(&q,i); + EnQueue(&q, i); } - + QueueTraverse(q); printf("DeQueue!\n"); - for ( i = 10; i < MAXSIZE; i++) - { - DeQueue(&q,&e); - } + DeQueue(&q, &e); + QueueTraverse(q); CleatQueue(&q); if (QuequEmpty(q)) @@ -136,6 +137,4 @@ int main(){ } getchar(); return OK; - - } diff --git a/a.out b/a.out index 21391a1..be9d31f 100644 Binary files a/a.out and b/a.out differ