循环链表
2015-06-15 22:15
323 查看
#include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 typedef int Status; typedef int QElemType; #define MAXQSIZE 100 typedef struct { QElemType *base; int front; int rear; }SqQueue; //构造一个空循环队列Q Status InitQueue(SqQueue &Q) { Q.base = (QElemType *)malloc(MAXQSIZE * sizeof(QElemType)); if (!Q.base) exit(OVERFLOW); Q.front = Q.rear = 0; return OK; } //返还队列的长度 int QueueLength(SqQueue Q) { return (Q.rear - Q.front + MAXQSIZE) % MAXQSIZE; //这个方法好 } //插入元素e为Q的新队尾元素 Status EnQueue(SqQueue &Q, QElemType e) { if ((Q.rear + 1) % MAXQSIZE == Q.front) return ERROR; Q.base[Q.rear] = e; Q.rear = (Q.rear + 1) % MAXQSIZE; return OK; } //若队列不空,则删除Q的队头元素,用e返还其值,并返回OK;否则返回ERROR Status DeQueue(SqQueue &Q, QElemType &e) { if (Q.front == Q.rear) return ERROR; e = Q.base[Q.front]; Q.front = (Q.front + 1) % MAXQSIZE; return OK; }
相关文章推荐
- Python HAIL CAESAR (凯撒密码) 2
- 垃圾回收算法
- hadoop4--深入mapreduce
- OSI Model
- 7.1
- 各家处理器资源网站
- Scala学习
- 十一、第十二观后感
- GrammarNode API
- j2se学习笔记-对象转型
- 基于Gstreamer的TI DSP视频处理框架
- 忍——不需要懂女人
- 编写高质量iOS代码(五)
- Linux应用程序学习之进程通信之管道
- GrammarNode API
- java 框架基础知识(6)----线程本地变更,即ThreadLocal-->Spring事务管理
- 使用EditText的addTextChangedListener(TextWatcher watcher)方法对EditText实现监听
- KMP算法解决字符串出现次数
- hadoop3--编写简单的map reduce
- sap abap 退出操作