数据结构(C语言版)—第三章栈和队列 3.4.2 队列的链式表示和实现(循环队列)

这个是循环队列的实现,至于串及数组这两章,香港服务器,服务器空间,等有空再看,虚拟主机,下面将学习树。

源码如下:

#include <stdio.h>#include <stdlib.h>#define MAXQSIZE 8typedef int QElemType ;typedef struct{QElemType *base;int front;int rear;}SqQueue;int InitSqQueue(SqQueue *S){S->base = (QElemType *)malloc(sizeof(QElemType)*MAXQSIZE);printf(,S->base);if(!S->base){exit(0);}S->front = S->rear = 0;return 1;}int InsertQueue(SqQueue *S, QElemType e){if((S->rear + 1)%MAXQSIZE == S->front){printf(,e);int temp = 0;DeleteQueue(S,&temp);InsertQueue(S,e);return -1;}*(S->base + S->rear) = e;printf(,(S->base + S->rear),e);S->rear = (S->rear + 1)%MAXQSIZE;return 1;}int DeleteQueue(SqQueue *S, QElemType * e){if(S->front == S->rear){return -1;}*e = *(S->base + S->front);printf(,(S->base + S->front),*e);S->front = (S->front + 1)%MAXQSIZE;return 1;}void PrintQueue(SqQueue *S){int *a = S->base;int front = S->front;int rear = S->rear;while(front != rear){printf(,a[front]);front ++;}printf();}void DestoryQueue(SqQueue *S){free(S->base);}int main(int argc ,char** argv){SqQueue S;printf(,S.base);InitSqQueue(&S);int i = 0;for(i = 0 ; i < 20 ; i++){InsertQueue(&S,i);}// PrintQueue(&S);DeleteQueue(&S,&i);// PrintQueue(&S);printf(,S.base);free(S.base);printf(,S.base);//S.base = NULL;;}哪里有意志存在,哪里就会有出路。

数据结构(C语言版)—第三章栈和队列 3.4.2 队列的链式表示和实现(循环队列)

相关文章:

你感兴趣的文章:

标签云: