顺序存储循环队列演示程序.doc
实习报告“顺序存储循环队列”演示程序(1)、程序的功能和特点主要实现的功能元素排队、出队;取队头元素;置空队;判断队空;求队长;(二)、程序的算法设计“链式存储循环队列”算法1【逻辑结构与存储结构设计】逻辑结构线性结构“先进先出”存储结构2【基本操作设计】用REAR指向队尾元素,用FRONT指向队头元素;队列的操作是在两端进行的,当为队列申请到一段连续空间后,插入元素在REAR端进行,删除元素在FRONT端进行;3【算法设计】出队队列是否满返回空是计算队尾插入元素队是否空是否判断队满的条件队尾位置1与队列元素取余判断是否队头位置4【高级语言代码】/排队/PUBLICVOIDENQUEUEDOUBLEITEM{IFISFULL//队满RETURNREARREAR1MAXSIZE//计算队尾ELEMENTSREARITEM//入队}/出队/PUBLICDOUBLEDEQUEUE{IFISEMPTYRETURN10返回非队列元素队头元素向后移返回队头元素FRONTFRONT1MAXSIZE//队头指针首先向后移RETURNELEMENTSFRONT}/取队头元素/PUBLICDOUBLEGETFRONT{//队头指针FRONT不能动IFISEMPTYRETURN1RETURNELEMENTSFRONT1MAXSIZE}/置空队/PUBLICVOIDMAKEEMPTY{FRONTREAR0}/判断是否为空/PUBLICBOOLEANISEMPTY{RETURNFRONTREAR}/判断队满/PUBLICBOOLEANISFULL{RETURNREAR1MAXSIZEFRONT}/求队的长度/PUBLICINTLENGTH{RETURNREARFRONTMAXSIZEMAXSIZE}(三)、程序中类的设计“QUEUE”类1【逻辑结构与存储结构】逻辑结构线性结构“先进先出”存储结构2【主要成员变量说明】INTREAR,FRONT//队尾,对头指针DOUBLEELEMENTS//队列元素数组INTMAXSIZE//最大元素个数3【主要成员方法说明】/排队/PUBLICVOIDENQUEUEDOUBLEITEM/出队/PUBLICDOUBLEDEQUEUE/取队头元素/PUBLICDOUBLEGETFRONT/置空队/PUBLICVOIDMAKEEMPTY/判断是否为空/PUBLICBOOLEANISEMPTY/判断队满/PUBLICBOOLEANISFULL/求队的长度/PUBLICINTLENGTH4【高级语言代码】PACKAGESTUDY_2//顺序存储式循环队列PUBLICCLASSQUEUE{INTREAR,FRONT//队尾,对头指针DOUBLEELEMENTS//队列元素数组INTMAXSIZE//最大元素个数/构造函数/PUBLICQUEUEINTSZ{FRONT0//约定空队的两个下标为0REAR0MAXSIZESZELEMENTSNEWDOUBLEMAXSIZE}/排队/PUBLICVOIDENQUEUEDOUBLEITEM{IFISFULL//队满RETURNREARREAR1MAXSIZE//计算队尾ELEMENTSREARITEM//入队}/出队/PUBLICDOUBLEDEQUEUE{IFISEMPTYRETURN10FRONTFRONT1MAXSIZE//队头指针首先向后移RETURNELEMENTSFRONT}/取队头元素/PUBLICDOUBLEGETFRONT{//队头指针FRONT不能动IFISEMPTYRETURN1RETURNELEMENTSFRONT1MAXSIZE}/置空队/PUBLICVOIDMAKEEMPTY{FRONTREAR0}/判断是否为空/PUBLICBOOLEANISEMPTY{RETURNFRONTREAR}/判断队满/PUBLICBOOLEANISFULL{RETURNREAR1MAXSIZEFRONT}/求队的长度/PUBLICINTLENGTH{RETURNREARFRONTMAXSIZEMAXSIZE}PUBLICSTATICVOIDMAINSTRINGARGS{QUEUEQ1NEWQUEUE10INTI0DOUBLEX//排队WHILEQ1ISFULLQ1ENQUEUE10I//出队WHILEQ1ISEMPTY{XQ1DEQUEUESYSTEMOUTPRINTX““}SYSTEMOUTPRINTLN}(4)、程序的输入输出和运行结果截屏