问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求C++语言下队列的基本操作,要可操作,带main 函数。

发布网友 发布时间:2022-05-10 18:17

我来回答

1个回答

热心网友 时间:2023-10-21 06:34

#include<iostream>
using namespace std;
#define true 1
#define false 0

typedef struct Node   //定义一个队列
{
int data;
 struct Node *next;
}LinkQueueNode;

typedef struct
{
LinkQueueNode *front;
 LinkQueueNode *rear;
}LinkQueue;

void InitQueue(LinkQueue *Q)   //初始化一个队列,把声明的队列的对象作为初始化的参数,不能用局部声明的变量

Q->front=Q->rear=(LinkQueueNode *)malloc(sizeof(LinkQueueNode));
   Q->front->next=NULL;
}

void CreatQueue(LinkQueue *Q)   //建立一个队列
{
int i,n;
LinkQueueNode *s;
cout<<"输入队列中的元素的个数n"<<endl;
cin>>n;
cout<<"输入队列中的元素"<<endl;
for(i=0;i<n;i++)
{
 s=(LinkQueueNode*)malloc(sizeof(LinkQueueNode));//要分配空间
 cin>>s->data;
 Q->rear->next=s;
 Q->rear=s;
 //s=s->next; 无用
}
Q->rear->next=NULL;
}

int EnterQueue(LinkQueue *Q,int x)    //入队操作
{
LinkQueueNode *NewNode;
NewNode=(LinkQueueNode*)malloc(sizeof(LinkQueueNode));
if(NewNode!=NULL)
{
 NewNode->data=x;
 NewNode->next=NULL;
 Q->rear->next=NewNode;
 Q->rear=NewNode;
 return(true);
}
else 
 return(false);
}

void DeleteQueue(LinkQueue *Q)  //出对操作
{
 int data;
 LinkQueueNode *p;
 if(Q->front==Q->rear)
 {
  cout<<"队列为空"<<endl;
  
 }
 else
 {
  p=Q->front->next;
  Q->front->next=p->next;
  data=p->data;
  free(p);
  cout<<data<<endl;
 }
}

void Output(LinkQueue *Q) // 输出队列中的值
{
LinkQueue *s;
s=Q;
LinkQueueNode *p;
p=s->front->next;
while(p!=NULL)
{
 cout<<p->data<<" ";
 p=p->next;
}
cout<<endl;
}

int main()
{
 LinkQueue *Q=(LinkQueue*)malloc(sizeof(LinkQueue));
 InitQueue(Q);
 int aa=1,x;
 while(aa)
 {
  cout<<"建队列请按1"<<endl;
  cout<<"进队列请按2"<<endl;
  cout<<"出队列请按3"<<endl;
  cout<<"输出请按4"<<endl;
  cout<<"退出请按0"<<endl;
  cin>>aa;
  switch(aa)
 {
  case 1:
   CreatQueue(Q);
   break;
  case 2:
  cout<<"输入进队列的值x"<<endl;
  cin>>x;
  EnterQueue(Q,x);
  break;
  case 3:
   DeleteQueue(Q);
   break;
  case 4:
   Output(Q);
   break;
  case 0:return(0);
   break;
  default:aa=0;
   break;
 }
}
return 0;


已 测试

追问struct。。。。
看到这个我就不想说什么了。。。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 什么是电脑版手机 我这是一个连锁店,想在店铺里放一些广告,有没有什么办法可以同步播放? 推荐款低价位平板电脑吧 图文广告店需要加盟吗? EKING S515旗舰版 这款掌上电脑性能怎样(详细) 一千多家连锁店想播音乐和视频广告,能被总部统一管理吗? 大家好 有谁知道什么牌子 型号的掌上电脑(能浏览WWW) 比较好? 天龙派男号名字要火星文字的那种 请推荐一款WM掌上电脑或wm手机 抖音广告地区加盟? 求个剑网3明教男号名字 10寸 WINDOWS系统平板电脑推荐 帅酷怎么样? 准备在淘宝里买 10寸卓尼斯平板电脑 。不知道好不好。谁买过?好用吗?上网,单击速度如何? 谁能帮忙起个和着名字 是情侣的 男号的名字啊 谢谢啊 她的名字叫 动漫★欣瑶 上网本都有哪些功能?一般都是几寸的 我想买个掌上电脑10寸左右,目的休闲娱乐就可以,速度别太慢就行,聊天,看电影看网页听歌听音乐就行。 谁可以帮我想一个好听炫舞名字?(男号) 我想起个好听点的男号名字谁会做特殊符号的名字? 给我推荐一款掌上电脑 10寸 32G内存 4G运行内存 32核 价格在500到 求个天龙八部男号好看又好听的名字 C++队列的各种操作(如:出对、入队……)(要全部) 单调队列的单调队列的操作 等待队列的操作方法 wifi解密码大师免流量软件下载 吃什么食物清热效果最好? 电脑上下载wifi分享大师一般无线网密码是多少? vivo手机安装包与具有同一名称的现有安装包发生冲突怎么办? 支付宝添加信用卡显示 网络系统异常 70后,80后小时候玩过的东西有哪些 春节可以去西安看兵马俑吗? 春节期间兵马俑开放吗? 汤鲜味美的番茄肥牛土豆汤,怎样做才更健康? 西安兵马俑2011/2/3春节去西安旅游兵马俑开放吗? 旷工被辞退能拿失业金吗 因为旷工被用人单位开除后,能领取到失业金吗 旷工被开除可以领取失业保险金吗 美发优惠卡怎么写软文? 预交多少抵多少的活动软文? 计算机ui设计专业介绍? 济南哪家粤菜做得最好??