您好,登錄后才能下訂單哦!
//循環(huán)順序隊(duì)列的基本操作 #include <iostream> #include <string.h> using namespace std; #define MAXLEN 8 #define datatype char #define Status int typedef struct{ datatype s[MAXLEN]; int front; //記錄隊(duì)首的指針 int rear; //記錄隊(duì)尾的指針 }SeqQueue; //初始化 Status InitSeqQueue(SeqQueue &sq) { sq.front=-1; sq.rear=-1; return 1; } //判空 Status IsEmpty(SeqQueue sq) { //若空,返回1;否則返回0 if(sq.front==sq.rear) return 1; else return 0; } //判滿 Status IsFull(SeqQueue sq) { //若隊(duì)滿,返回1; if(sq.front==(sq.rear+1)%MAXLEN) return 1; else return 0; } //入棧 Status InQueue(SeqQueue &sq,datatype x) { //判斷隊(duì)列滿 if(sq.front==(sq.rear+1)%MAXLEN) return 0; sq.rear++; sq.s[sq.rear]=x; return 1; } //出棧 Status OutQueue(SeqQueue &sq,datatype &x) { //若對空,返回0;出隊(duì)成功返回1; //判斷對空 if(sq.front==sq.rear) return 0; //出隊(duì) sq.front++; x=sq.s[sq.front]; return 1; } //顯示棧元素 Status ShowQueue(SeqQueue &sq) { if(sq.front==sq.rear) return 0; int i=sq.front; while(i!=sq.rear) { i++; cout<<sq.s[i]<<" "; } cout<<endl; return 1; } //讀棧首元素 Status ReadQueue(SeqQueue &sq,datatype &x) { if(IsEmpty(sq)) return 0; //若隊(duì)列空,返回0 sq.front++; x=sq.s[sq.front]; return 1; } //求隊(duì)列長度 int main() { cout<<"隊(duì)列初始化"<<endl; SeqQueue SQ; InitSeqQueue(SQ); cout<<"入隊(duì)"<<endl; InQueue(SQ,'a'); InQueue(SQ,'b'); InQueue(SQ,'c'); cout<<"顯示隊(duì)列元素:"<<endl; ShowQueue(SQ); datatype x; cout<<"出隊(duì):"<<endl; OutQueue(SQ,x); cout<<"顯示隊(duì)列元素:"<<endl; ShowQueue(SQ); cout<<"讀取隊(duì)首元素:"<<endl; ReadQueue(SQ,x); cout<<x<<endl; return 0; } ---------------------------------------------------------- 輸出結(jié)果: 隊(duì)列初始化 入隊(duì) 顯示隊(duì)列元素: a b c 出隊(duì): 顯示隊(duì)列元素: b c 讀取隊(duì)首元素: b Press any key to continue . . .
鮮少偉
2016-4-18
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。