IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 数据结构栈和队列--------------顺序栈的相关操作 -> 正文阅读

[数据结构与算法]数据结构栈和队列--------------顺序栈的相关操作

#include<iostream>
#define MAXSIZE 6
using namespace std;
typedef struct
{
	int *base;
	int rear;
	int front;
}Queue;


void InitQueue(Queue &Q)
{
	Q.base=new int[MAXSIZE];
	Q.front=0;
	Q.rear=0;
	return;
}


int lengthQueue(Queue Q)
{
	return(Q.rear-Q.front+MAXSIZE)%MAXSIZE;
}


bool InQueue(Queue &Q,float e)
{
	if((Q.rear+1)%MAXSIZE==Q.front)
	    return false;
	Q.base[Q.rear]=e;
	Q.rear=(Q.rear+1)%MAXSIZE;
	return true;
}


int OutQueue(Queue &Q)
{
	float a;
	if(Q.front==Q.rear)
	    return 0;
	a=Q.base[Q.front];
	Q.front=(Q.front+1)%MAXSIZE;
	return  a;
}


int GetQueue(Queue Q)
{
	if(Q.rear!=Q.front)
	    return Q.base[Q.front];
}


void output(Queue Q)
{
	if(!Q.base)
	{
		cout<<"队列为空,无法输出!"<<endl;
	}
	int i=(Q.rear-Q.front+MAXSIZE)%MAXSIZE;
	for(i;i>0;i--)
	{
		cout<<Q.base[Q.front]<<"  ";
		Q.front=(Q.front+1)%MAXSIZE;
	}
	cout<<endl;
	return;
}


int main()
{
	Queue Q;
	while(1)
	{
		cout<<"*********************************************************"<<endl;
		cout<<"******1.顺序队列初始化         2.顺序队列数据填充********"<<endl; 
		cout<<"******3.顺序队列的长度         4.顺序队列的入队**********"<<endl;
		cout<<"******5.顺序队列的出队         6.顺序队列的对头元素******"<<endl;
		cout<<"******7.顺序队列的显示         8.退出程序    ************"<<endl; 
		int k;
		int n;
		float e;
		int a=1;
		cout<<"输入你的选择:";
		cin>>k;
		switch(k)
		{
			case 1:
				InitQueue(Q);
				cout<<"顺序队列初始化成功!"<<endl;
				continue;
			case 2:
				cout<<"输入你要填充的元素的个数:";
				cin>>n;
				for(a;a<=n;a++)
				{
					cout<<"输入入队的第"<<a<<"个数:";
					cin>>e;
					InQueue(Q,e);
				}
				cout<<"数据输入成功!"<<endl;
				continue;
			case 3:
				cout<<"顺序队列的长度为:";
				cout<<lengthQueue(Q)<<endl;
				continue;
			case 4:
			    cout<<"输入你要入队的元素:";
				cin>>e;
				InQueue(Q,e);
				cout<<"元素入队成功!"<<endl;
				continue;
			case 5:
				cout<<"循环队列出队的的元素值为:";
				cout<<OutQueue(Q)<<endl;
				cout<<"元素出队成功!"<<endl;
				continue;
			case 6:
				cout<<"循环队列的对头元素为:";
				cout<<GetQueue(Q)<<endl;
				continue;
			case 7:
				cout<<"顺序队列的显示如下:"<<endl;
				output(Q);
				cout<<"显示完毕!"<<endl;
				continue;
			case 8:
			    cout<<"退出程序!"<<endl;
				break;		
		}
		break;
	}
	return 0;
}

该代码用C++进行编译,实现创建顺序队列及队列中相关操作。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 12:11:23  更:2021-09-30 12:13:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 12:33:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码