首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言顺序兑现队列

2012-12-18 
C语言顺序实现队列ADT_Sequential_Queue.h/*-----------------------------------------Copyright (c) 201

C语言顺序实现队列

ADT_Sequential_Queue.h

/*-----------------------------------------Copyright (c) 2010-2011 Zidane LiUsage of this program is free for non-commercial use.-----------------------------------------*/#ifndef SEQUENTIAL_QUEUE_H#define SEQUENTIAL_QUEUE_H#include <stdlib.h>#include "ADT_Sequential_Queue.h"#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0;#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;Status InitQueue(SqQueue& Q, int size){Q.queuesize = size;Q.elem = (QElemType*)malloc(Q.queuesize * sizeof(QElemType));Q.front = Q.rear = 0;return OK;}Status DestroyQueue(SqQueue& Q){Q.queuesize = 0;Q.front = Q.rear = 0;free(Q.elem);return OK;}Status ClearQueue(SqQueue& Q){Q.rear = Q.front;Q.queuesize = 0;return OK;}bool QueueEmpty(SqQueue Q){return Q.front == Q.rear;}int QueueLength(SqQueue Q){return Q.rear - Q.front;}QElemType GetHead(SqQueue Q){return Q.elem[Q.front];}Status EnQueue(SqQueue& Q, QElemType e){if (Q.rear == Q.queuesize){return ERROR;}else{Q.elem[Q.rear++] = e;return OK;}}Status DeQueue(SqQueue& Q, QElemType& e){if (Q.rear == 0){return ERROR;}//剩余元素向前移else{e = Q.elem[0];for (int i = 0; i < Q.rear; i++){Q.elem[i] = Q.elem[i + 1];}Q.rear--;return OK;}return OK;}Status QueueTraverse(SqQueue Q){for (int i = Q.front; i < Q.rear; i++){visit(Q.elem[i]);}return OK;}#endif
?

热点排行