溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

數(shù)據(jù)結(jié)構(gòu)-循環(huán)順序隊(duì)列的基本操作

發(fā)布時間:2020-07-29 11:39:17 來源:網(wǎng)絡(luò) 閱讀:427 作者:toceph 欄目:編程語言
//循環(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

向AI問一下細(xì)節(jié)

免責(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)容。

AI