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