顺序队列

来源:互联网 发布:js数组去重复的方法 编辑:程序博客网 时间:2024/05/22 07:09
#include<stdio.h>typedef char DataType;#include "SeqQueue.h"void main(){SeqQueue Q;char str[] = "ABCDEFG";int i, length=8;char x;InitQueue(&Q);for (i = 0; i < length; i++){EnQueue(&Q, str[i]);}DeQueue(&Q, &x);printf("出队列的元素为:%c\n", x);printf("顺序队列中的元素为:");DisplayQueue(Q);}
/*SeqQueue.h函数*/#include<stdio.h>#define QUEUESIZE 60// typedef int DataType;typedef struct Squeue{DataType queue[QUEUESIZE];int front, rear;}SeqQueue;/*顺序队列初始化*/void InitQueue(SeqQueue *SQ){SQ->front = SQ->rear = 0;}/*判断队列是否为空*/int QueueEmpty(SeqQueue SQ){if (SQ.front == SQ.rear)return 1;elsereturn 0;}/*入队操作*/int EnQueue(SeqQueue *SQ, DataType e){if (SQ->rear == QUEUESIZE)return 0;SQ->queue[SQ->rear] = e;   //在队尾插入元素eSQ->rear = SQ->rear + 1;   //队尾指针向后移动一个单位}/*出队操作*/int DeQueue(SeqQueue *SQ, DataType *e){if (SQ->front == SQ->rear)return 0;else{*e = SQ->queue[SQ->front]; //将要删除的元素赋值给eSQ->front = SQ->front + 1;   //队头指针向后移动一个单位}}/*输出队列*/void DisplayQueue(SeqQueue SQ){int i;if (!QueueEmpty(SQ)){for (i = SQ.front; i < SQ.rear; i++)printf("%c", SQ.queue[i]);}}


0 0
原创粉丝点击