当前位置: 首页 > article >正文

用C++实现队列顺序结构的基本操作

//队列顺序结构的基本操作:
#include"stdio.h"
#include"String"
#define QueueSize 100
typedef char ElemType;
typedef struct  
{	
	ElemType data[QueueSize];	/*保存队中元素*/
	int front,rear;				/*队头和队尾指针*/
} SqQueue;
void InitQueue(SqQueue &qu)		 
{
	qu.rear=qu.front=-1;           /*指针初始化*/
} 
int EnQueue(SqQueue &qu,ElemType x)	 
{
	if ((qu.rear+1)%QueueSize==qu.front) /*队满*/
	{
		return 0;
	}
	qu.rear=(qu.rear+1)%QueueSize; /*队尾指针进1*/
	qu.data[qu.rear]=x;
	return 1;
}
int DeQueue(SqQueue &qu,ElemType &x)	/*出队运算*/
{
	if (qu.rear==qu.front)
		return 0;
	qu.front=(qu.front+1)%QueueSize;    /*队头指针进1*/
	x=qu.data[qu.front];
	return 1;
}
int GetHead(SqQueue qu,ElemType &x)		/*取队头元素运算*/
{
	if (qu.rear==qu.front)		/*队空*/
		return 0;
	x=qu.data[(qu.front+1)%QueueSize];
	return 1;
}
int QueueEmpty(SqQueue qu)		/*判断队空运算*/
{
	if (qu.rear==qu.front)		/*队空*/
		return 1;
	else
		return 0;
}
int main()
{	SqQueue qu;
	ElemType e;
	InitQueue(qu);
	printf("队%s\n",(QueueEmpty(qu)==1?"空":"不空"));
	printf("a进队\n");EnQueue(qu,'a');
	printf("b进队\n");EnQueue(qu,'b');
	printf("c进队\n");EnQueue(qu,'c');
	printf("d进队\n");EnQueue(qu,'d');
	printf("队%s\n",(QueueEmpty(qu)==1?"空":"不空"));
	GetHead(qu,e);
	printf("队头元素:%c\n",e);
	printf("出队次序:");
	while (!QueueEmpty(qu))
	{   DeQueue(qu,e);
		printf("%c ",e);
	}
	printf("\n");
	return 0;
}

运行结果:


http://www.kler.cn/a/163276.html

相关文章:

  • 年底不同外贸客户催单模板分享
  • 大数据技术4:Lambda和Kappa架构区别
  • 机器学习实验三:支持向量机模型
  • RedHat8.1安装mysql5.6(GLIBC方式)
  • Criteria类
  • 【Linux systemctl命令控制软件的启动和关闭】
  • Python面向对象基础
  • 【SpringCache】快速入门 通俗易懂
  • 玩转大数据11:数据可视化与交互式分析
  • 期末速成数据库极简版【存储过程】(5)
  • 看完了一个动画电影-心灵奇旅
  • 案例061:基于微信小程序的互助学习系统
  • JVM 性能调优及监控诊断工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解
  • 初级数据结构(一)——顺序表
  • 同源策略与跨域
  • EAS BOS:Unsupported major.minor version 51.0
  • 网御 ACM上网行为管理系统bottomframe.cgi SQL注入漏洞复现 [附POC]
  • Verilog中generate的用法
  • python epub文件解析
  • 【AIGC】大语言模型的采样策略--temperature、top-k、top-p等