From 2cb85d4c7fb19b13c6f7cb38c4a4824148c77e0b Mon Sep 17 00:00:00 2001 From: Xu Bai <1373953675@qq.com> Date: Tue, 2 Jul 2019 22:33:33 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=BA=E5=BA=8F=E9=98=9F=E5=88=97=E5=88=9D?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _02.栈与队列/05顺序队列_Queue.c | 156 ++++++++++++++++++++++++++++++++ _02.栈与队列/_e.顺序队列.c | 141 +++++++++++++++++++++++++++++ a.out | Bin 46855 -> 51297 bytes 3 files changed, 297 insertions(+) create mode 100644 _02.栈与队列/05顺序队列_Queue.c create mode 100644 _02.栈与队列/_e.顺序队列.c diff --git a/_02.栈与队列/05顺序队列_Queue.c b/_02.栈与队列/05顺序队列_Queue.c new file mode 100644 index 0000000..1639e84 --- /dev/null +++ b/_02.栈与队列/05顺序队列_Queue.c @@ -0,0 +1,156 @@ +#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 new file mode 100644 index 0000000..f093e2a --- /dev/null +++ b/_02.栈与队列/_e.顺序队列.c @@ -0,0 +1,141 @@ +/* + * @Author: Xu Bai + * @Date: 2019-07-02 22:06:31 + * @LastEditors: Xu Bai + * @LastEditTime: 2019-07-02 22:32:59 + */ +#include "stdlib.h" +#include "io.h" +#include "stdio.h" + +#define MAXSIZE 20 +#define OK 1 +#define ERROR 0 +#define TRUE 1 +#define FALSE 0 + +typedef int Status; +typedef int ElemType; + +typedef struct +{ + ElemType data[MAXSIZE]; + int front; + int rear; +} SqQueue; + +Status visit(ElemType e) +{ + printf("%d ", e); + return OK; +} + +Status InitQueue(SqQueue *Q) +{ + Q->front = 0; + Q->rear = 0; + return OK; +} + +Status CleatQueue(SqQueue *Q) +{ + Q->front = Q->rear = 0; + return OK; +} + +Status QuequEmpty(SqQueue Q) +{ + if (Q.front == Q.rear) + { + return TRUE; + } + else + { + return FALSE; + } +} + +int QueueLength(SqQueue Q) +{ + return (Q.rear - Q.front + MAXSIZE) % MAXSIZE; +} + +Status GetHead(SqQueue Q, ElemType *e) +{ + if (Q.front = Q.rear) + { + return ERROR; + } + else + { + *e = Q.data[Q.front]; + return OK; + } +} + +Status EnQueue(SqQueue *Q, ElemType e) +{ + if ((Q->rear + 1) % MAXSIZE == Q->front) + { + // + return ERROR; + } + else + { + Q->data[Q->rear] = e; + Q->rear = (Q->rear + 1) % MAXSIZE; + return OK; + } +} + +Status DeQueue(SqQueue *Q, ElemType *e) +{ + if (Q->front == Q->rear) + { + return ERROR; + } + *e = Q->data[Q->front]; + Q->front = (Q->front + 1) % MAXSIZE; + return OK; +} + +Status QueueTraverse(SqQueue Q) +{ + int i = Q.front; + while ((i + Q.front) != Q.rear) + { + visit(Q.data[i]); + i = (i + 1) % MAXSIZE; + } + printf("\n"); + return OK; +} + +int main(){ + ElemType e; + SqQueue q; + InitQueue(&q); + int i ; + printf("EnQueue!\n"); + for ( i = 0; i < MAXSIZE; i++) + { + EnQueue(&q,i); + } + + QueueTraverse(q); + printf("DeQueue!\n"); + for ( i = 10; i < MAXSIZE; i++) + { + DeQueue(&q,&e); + } + QueueTraverse(q); + CleatQueue(&q); + if (QuequEmpty(q)) + { + printf("empty!\n"); + } + getchar(); + return OK; + + +} diff --git a/a.out b/a.out index 7846ee7b2200efe978c07eb8864952bacb97ae8c..21391a1d319ad4e4801f31530bb343e7152adae8 100644 GIT binary patch delta 12293 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 S{NkTNc;4>pp6QRj9R2^XU&WXJ delta 7355 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 Sy