顺序队列的创建、入队、出队

队列的存储结构为顺序存储为顺序队列。其和顺序栈其实是类似的。队列为“先入先出”,栈为“先入后出”。 顺序栈建立时,需要一个栈顶指针,同样的队列的建立也创建一个队首指针front和一个队尾指针rear。初始化时,front=rear=-1。

代码如下:

// SeqQueue.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>

using namespace std;
typedef char type;

#define MaxSize 100
//顺序队列结点
typedef struct queue
{
	type data[MaxSize];
	int front; //队首指针
	int rear;  //队尾指针
}Queue,*SeqQueue;

//初始化队列
void InitQueue(SeqQueue q)
{
	q->front=-1;
	q->rear=-1;
}

//入队操作
bool EnterQueue(SeqQueue q,type data)
{
	//判断队列是否满
	if(MaxSize-1==q->rear)
	{
	  cout<<"队列已满!"<<endl;
	  return false;
	}
	
	q->data[++q->rear]=data;
	return true;
}

//出队操作  返回出队元素
type OutQueue(SeqQueue q)
{
	//判断队列是否为空
	if(q->rear==q->front)
	{
      cout<<"队列为空!"<<endl;
	 	exit(-1);
	}
	type temp=q->data[q->front+1];
	q->front++;
	return temp;
}

//打印队列
void PrintQueue(SeqQueue q)
{
	if(q->rear==q->front)
	{
		exit(-1);
	}

	for(int i=q->front+1;i<=q->rear;i++)
	{
		cout<<q->data[i]<<" ";
	}
	cout<<endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
	type a[5]={'a','b','c','e','f'};

	Queue q;
	InitQueue(&q);
	
	for(int i=0;i<5;i++)  //入队操作
		EnterQueue(&q,a[i]);

	PrintQueue(&q);

	//出队操作
	cout<<OutQueue(&q)<<endl;
	PrintQueue(&q);

	return 0;
}


 

运行结果:

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值