栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C/C++队列的顺序写法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C/C++队列的顺序写法

就一天写好几个呗

#include
#include
#include
#define MAX 100
using namespace std;
typedef struct SqQueue
{
	int *base;
	int front;
	int rear;
	int len;	
}SqQueue;
void  menu(void);
void  caidancaozuo(SqQueue &S);
void  create(SqQueue &S);//就是初始化 
void  pankong(SqQueue &S);//判断是否是空的队列或者是队列压根不存在,但在实际的函数中最好把这段代码复制到其他函数而不是调用 
void  charu(SqQueue &S);//插入队列元素 
void  deletefront(SqQueue &S);//删除队头元素 
void  clean(SqQueue &S); //顺序存储的队列中清空清空和销毁还是有很多的区别的 
void  destroyQueue(SqQueue &S);//这个建议你先写删除队头的函数,然后直接根据L.len调用删除对头的函数就好 
void  outfront(SqQueue S);//输出队列的队头元素 
void  outSqQueue(SqQueue S);//输出队列的元素 
void  outlen(SqQueue S);//输出队列的长度
int main(void)
{
	SqQueue S;
	menu();
	caidancaozuo(S);
}
void menu(void)       
{                      //很经典的菜单形式 
	char a01[] = "(1)创建顺序队列";
	char a02[] = "(2)判断队列是否为空";
	char a03[] = "(3)插入队尾元素";
	char a04[] = "(4)删除队头元素";
	char a05[] = "(5)清空队列";
	char a06[] = "(6)销毁队列";
	char a07[] = "(7)输出队头元素";
	char a08[] = "(8)输出队列中所有元素";
	char a09[] = "(9)输出队列长度";
	char a10[] = "(10)出入任意不在前面菜单的数字将结束程序";
 
	printf("%-50s", a01);
	printf("%-50sn", a02);
	printf("%-50s", a03);
	printf("%-50sn", a04);
	printf("%-50s", a05);
	printf("%-50sn", a06);
	printf("%-50s", a07);
	printf("%-50sn", a08);
	printf("%-50s", a09);
	printf("%-50sn", a10);
}
void caidancaozuo(SqQueue &S)
{
	cout << "请问你想选择哪个指令" << endl;
	int mingling;
	cin >> mingling;
	switch (mingling)
	{
	case 1:
	{
		create(S);
		caidancaozuo(S);
		break;
	}
	case 2:
	{
	    pankong(S);
		caidancaozuo(S);
		break;
	}
	case 3:
	{
        charu(S);
		caidancaozuo(S);
		break;
	}
	case 4:
	{
	   deletefront(S);
	   caidancaozuo(S);
	   break;
	}
	case 5:
	{
		clean(S);
		caidancaozuo(S);
		break;
	}
	case 6:
	{
		destroyQueue(S);
		caidancaozuo(S);
		break;
	}
	case 7:
	{
	    outfront(S); 
		caidancaozuo(S);
		break;
	}
	case 8:
	{
		outSqQueue(S);
		caidancaozuo(S);
		break;
	}
	case 9:
	{
		outlen(S); 
		caidancaozuo(S);
		break;
	}
	default:
		cout << "您已经决定退出此程序,程序即将退出" << endl;
		break;
	}
}
void  create(SqQueue &S)
{
	S.base=(int *)malloc(100*sizeof(int));
	if(!S.base)
	{
		cout<<"创建失败"<>x;
	S.base[S.rear]=x;
	S.rear=(S.rear+1)%MAX;
	S.len++;
}
void  deletefront(SqQueue &S)//删除队头元素
{
	if(!S.base)
	{
		cout<<"你还未创建一个队列"< 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/330205.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号