数据结构-循环顺序队列的基本操作
//循环顺序队列的基本操作#include<iostream>#include<string.h>usingnamespacestd;#defineMAXLEN8#definedatatypechar#defineStatusinttypedefstruct{datatypes[MAXLEN];intfront;//记录队首的指针intrear;//记录队尾的指针}SeqQueue;//初始化StatusInitSeqQueue(SeqQueue&sq){sq.front=-1;sq.rear=-1;return1;}//判空StatusIsEmpty(SeqQueuesq){//若空,返回1;否则返回0if(sq.front==sq.rear)return1;elsereturn0;}//判满StatusIsFull(SeqQueuesq){//若队满,返回1;if(sq.front==(sq.rear+1)%MAXLEN)return1;elsereturn0;}//入栈StatusInQueue(SeqQueue&sq,datatypex){//判断队列满if(sq.front==(sq.rear+1)%MAXLEN)return0;sq.rear++;sq.s[sq.rear]=x;return1;}//出栈StatusOutQueue(SeqQueue&sq,datatype&x){//若对空,返回0;出队成功返回1;//判断对空if(sq.front==sq.rear)return0;//出队sq.front++;x=sq.s[sq.front];return1;}//显示栈元素StatusShowQueue(SeqQueue&sq){if(sq.front==sq.rear)return0;inti=sq.front;while(i!=sq.rear){i++;cout<<sq.s[i]<<"";}cout<<endl;return1;}//读栈首元素StatusReadQueue(SeqQueue&sq,datatype&x){if(IsEmpty(sq))return0;//若队列空,返回0sq.front++;x=sq.s[sq.front];return1;}//求队列长度intmain(){cout<<"队列初始化"<<endl;SeqQueueSQ;InitSeqQueue(SQ);cout<<"入队"<<endl;InQueue(SQ,'a');InQueue(SQ,'b');InQueue(SQ,'c');cout<<"显示队列元素:"<<endl;ShowQueue(SQ);datatypex;cout<<"出队:"<<endl;OutQueue(SQ,x);cout<<"显示队列元素:"<<endl;ShowQueue(SQ);cout<<"读取队首元素:"<<endl;ReadQueue(SQ,x);cout<<x<<endl;return0;}----------------------------------------------------------输出结果:队列初始化入队显示队列元素:abc出队:显示队列元素:bc读取队首元素:bPressanykeytocontinue...
鲜少伟
2016-4-18
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。