Java数据结构跳舞配对问题(队列的应用)

作者&投稿:夷狡 (若有异议请与网页底部的电邮联系)
数据结构舞伴配对问题~

你循环队列是怎么实现的,d:\jiatingting\app0304\sqqueue.h(92) : error C2440: '=' : cannot convert from 'struct Person' to 'int',类型不符合,检查下头文件的类型

下面是我写的程序:
你自己作个参考 :

#include
#include
#include
#include
typedef char ElemType;
typedef struct stack
{
ElemType data;
struct stack *top;
}LinkStack;
int InitStack(LinkStack *&ls)
{
ls=NULL;
return 1;
}
int ClearStack(LinkStack *&ls)
{
LinkStack *p;
if(ls==NULL)
return 0;
while(ls!=NULL)
{
p=ls;
ls=p->top;
free(p);
}
return 1;
}
int StackEmpty(LinkStack *ls)
{
if(ls==NULL)
return 1;
else return 0;
}
int StackLength(LinkStack *ls)
{
int i=0;
LinkStack *p=ls;
while(p!=NULL)
{
p=p->top;
i++;
}
return i;
}
ElemType GetTop(LinkStack *ls)
{
ElemType e;
if(ls==NULL)
return 0;
e=ls->data;
return e;
}
int Push(LinkStack *&ls,ElemType e)
{
LinkStack *p;
p=new struct stack[sizeof(LinkStack)];
p->data=e;
p->top=ls;
ls=p;
return 1;
}
int Pop(LinkStack *&ls,ElemType &e)
{
LinkStack *p;
if(ls==NULL)
return 0;
else
{
p=ls;
e=p->data;
ls=p->top;
free(p);
}
return 1;
}
//8. 访问栈中元素
void StackPrint(LinkStack *ls)
{
LinkStack *p=ls;
if(ls==NULL)
return ;
while(p!=NULL)
{

coutdata<<" ";
p=p->top;
}

}
//9. 写一算法,利用栈操作判断一字符串是否是回文。
int huiwen(ElemType str[])
{
int i=0;
ElemType ch,temp;
LinkStack *ls;
InitStack(ls);
while((ch=str[i++])!='\0')
Push(ls,ch);
i=0;
while(!StackEmpty(ls))
{
Pop(ls,temp);
if(temp!=str[i++])
return 0;
}
return 1;
}
//10. 利用栈的基本信息,编写一个算法输入若干整数,以0标识输入结束。然后按与输入相反的次序输出这些数。
int Reverse()
{

ElemType ch;
LinkStack *ls;
InitStack(ls);
cout<<"请输入你要输入的整数:";
cin>>ch;
while(ch!=48)
{
Push(ls,ch);
cin>>ch;
}
while(!StackEmpty(ls))
{
Pop(ls,ch);
cout<<ch<<" ";
}
return 1;
}



//12. 利用栈进行括号匹配检验。
int Match(char str[])
{
int i=0;
LinkStack *ls;
InitStack(ls);
ElemType ch,e;
while(str[i]!='\0')
{
if(str[i]=='('||str[i]=='[')
{
Push(ls,str[i]);
ch=GetTop(ls);
}
else if(ch=='('&&str[i]==')')
{ Pop(ls,e);ch=GetTop(ls);}
else if(ch=='['&&str[i]==']')
{ Pop(ls,e);ch=GetTop(ls);}
else
return 0;
i++;
}
if(StackEmpty(ls))
return 1;
else
return 0;
}

void main(){
cout<<endl<<"括号匹配:"<<endl;
ElemType str2[]="[[[]()()]]()([])(([]))";
cout<<Match(str2);
}

代码如下,可以直接运行。

public static void main(String[] args) {
final int M = 6; // number of girls,可改动
final int N = 7; // number of boys,可改动

int x = 3;// some boy,可改动
int y = 5;// some girl,可改动
String result = "";// 记录结果,即第二个问题

// 初始化,假设队列存放男女生编号,从1开始
Queue<Integer> boys = new LinkedList<Integer>();
for (int i = 1; i <= N; i++) {
boys.add(i);
}
Queue<Integer> girls = new LinkedList<Integer>();
for (int i = 1; i <= M; i++) {
girls.add(i);
}

// 跳舞开始
int min = boys.size() > girls.size() ? girls.size() : boys.size();
int k = 1;// songs
int count = 2; // 求出两个值,可改动
while (k < 1000) {//为了不死循环,这里假设最多有999支舞蹈
System.out.println("***This is the " + k + "st dance:");
for (int i = 0; i < min; i++) {
// 跳舞,第一个问题:输出每曲配对情况
System.out.println("Boy " + boys.peek() + " <=> Girl "
+ girls.peek());
// 跳过的排到对尾
int boy = boys.remove();
boys.add(boy);
int girl = girls.remove();
girls.add(girl);
// 判断 x和y跳舞了没有
if (boy == x && girl == y) {
result += k + ",";
count--;
}
}
if (count == 0)
break;
// next dance
k++;
}
// 结果
if (count == 0)
System.out.println("\n***Boy " + x + " and Girl " + y
+ " dance together in : " + result);//第二个问题的解答,跳了哪几支舞
else
System.out.println("\n***Boy " + x + " and Girl " + y
+ " have no chance to dance!");//第二个问题的解答,两人没机会跳舞
}


有谁知道多媒体录播系统吗?我想要这块资料,请大家提供下,谢谢啦...
AVA移动录播车又称高度集成的移动式“数字演播中心”,AVA移动录播车内嵌录播系统主机、摄像头、拾音及扩音等多种设备、支架及线材。独特的内部结构,可方便设备的使用和收捡。优势: 使用AVA移动录播车,从架设摄像头、拾音及扩音设备,到最终使用只需10分钟。简短10分钟即可搭建一套实时编辑、记录、直播的“数字演播中...

学Java的人太多了,现在学Java还好找工作吗?
其实现在很多大学生对自己所学专业并不喜欢,自然毕业了也就很迷茫。茫茫找工作的过程当中,留心的你或许能发现目前IT行业薪资平均来看都挺高,前景也不错。其中Java编程乃是其中比较火的一个。但是在学习Java编程之前我们不得不考虑,现在Java编程学习前景如何?学习Java编程好找工作吗?Java编程学习有前途...

java 初级、中级、高级工程师有什么区别?
掌握JVM内存分配、JVM垃圾回收;类装载机制; 性能优化; 反射机制;多线程;IO\/NIO; 网络编程;常用数据结构和相关算法。 2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设计模式;设计模式;单例模式;工厂模式;代理模式;模板方法模式;责任链模式等。 3、熟练掌握目前流行开源框架(spring\/springmvc\/ibatis),并且...

Java语言的特点
安全性可以分为四个层面,即语言级安全性、编译时安全性、运行时安全性、可执行代码安全性。语言级安全性指Java的数据结构是完整的对象,这些封装过的数据类型具有安全性。编译时要进行Java语言和语义的检查,保证每个变量对应一个相应的值,编译后生成Java类。运行时Java类需要类加载器载入,并经由字节码校验器校验之后...

想问一下java的学习路线
2、通过学习JSP和Servlet之后,了解下Mvc的结构,使用JSP和Servlet通过JDBC来实现一个简单的系统,或者网上搜索下相关的demo看看。这个便于熟悉之后的框架原理及使用。3、Struts&Struts2&SpringMvc:Struts2\/SpringMvc对于理解MVC非常重要,这个现在也是使用非常广泛的框架,建议先学习SpringMvc,这个学习起来相对...

Java语言主要特点有哪些?
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。 8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。在运行...

学习java的步骤是什么?
就从基础开始说起 Javase Java基础所包含的,Java零基础必备安装包、JavaSE301集、Java教程零基础2019、Java教程零基础2019(ava基础语法、面向对象、异常、数组、常用类、集合、IO流、线程、反射机等等)、XML、Tomcat服务器开发;其中Java零基础2019这视频教程系列可以去B站观看。搜索Java或者Java教程,第...

Java培训的主要内容是什么?
课程的主要内容包括但不限于以下几个方面:1. Java基础:深入学习Java编程语言的基本概念、语法规则以及面向对象的思想。学员将了解Java的数据类型、运算符、流程控制、数组、字符串等基础知识,并通过实例演示加深理解。2. 面向对象编程:学习面向对象编程的原理和方法,掌握封装、继承、多态等重要特性的应用...

java该怎么自学?
二、数据库 互联网最具价值的是数据,任何编程语言都需要解决数据存储问题,而数据存储的关键技术是数据库。MySQL和Oracle都是广受企业欢迎的数据库管理系统。Java程序和数据库通信的最常见技术是JDBC,Druid和C3P0。学习这些数据库技术后,可以掌握数据库运维技术、复杂业务表结构设计规范、工作中常见的SQL操作、软件数据存...

求推荐比较适合前端学习的一门后端语言?
python适合以下几个方面:1、【Web开发】Python拥有很多免费数据函数库、免费web网页模板系统、以及与web服务器进行交互的库,可以实现web开发搭建web框架。2、数据科学将Python用于机器学习:可以研究人工智能、机器人、语言识别、图像识别、自然语言处理和专家系统等。将Python用于数据分析可视化大数据分析等等。...

泾川县18584194785: 数据结构舞伴配对问题 -
乾斧调经: 你循环队列是怎么实现的,d:\jiatingting\app0304\sqqueue.h(92) : error C2440: '=' : cannot convert from 'struct Person' to 'int',类型不符合,检查下头文件的类型

泾川县18584194785: 请高手指导关于数据结构的问题
乾斧调经: 挺简单的啊,设计两个队列1,2,1用来存放男生,2用来存放女生.(当然,也应该有两个队列3,4存放正在跳舞的男女).当一曲开始时,分别从两个队列同时依次弹出队首元素分别放到3,4,直到有个队列为空为止.当一曲结束,先把3,4依次弹出分别压入1,2.直到3,4为空. 当然有下一曲的话就再重复上面的操作..

泾川县18584194785: 怎么用java实现图中的数据结构 -
乾斧调经: 用编程实现图的存储一般有常见的有两种方式,第一种是邻接链表、第二种就是邻接矩阵.邻接链表就是将图中的每一个点都单独作为一个单独链表的起点,为每个顶点保存一个链表.链表的每一个节点都记录了与之相邻的节点的信息.邻接矩阵就是将图转换成一个二维数组,数组的x和y均表示图中每个节点到其他节点的连接状况,能连通用一种状态表示,不能连通用另外一中方式表示,这样就形成了一个笛卡尔积.也就是一个二维数组.

泾川县18584194785: 编写程序,实现舞伴问题 -
乾斧调经: #include #define maxsize 100 typedef struct { char sex;//'B代表男、G代表女' char name[10];//存储姓名 }pupil; typedef struct { pupil man[maxsize]; int front; int rear; }manqueue; typedef struct { pupil women[maxsize]; int front; int rear; }womenqueue; ...

泾川县18584194785: java中的队列用什么实现? -
乾斧调经: 队列的实现单纯的是数据结构的问题,既可以用链表结构实现队列,也可以用数组实现.这和语言不是紧密关系,java可以这样实现,C、C++ 也可以.

泾川县18584194785: JAVA数据结构:学生搭配问题,求教 -
乾斧调经: 第二问看不懂题目……求概率吗?第一问可以帮你写写.import java.util.*; import java.io.*; class Dance { private static int N=0; private static int M=0; private static int K=0; private static boolean[] ArrN=null; private static boolean[] ArrM=null;...

泾川县18584194785: 高手请帮忙用java版的数据结构,设置3个队列,实现入队出队. -
乾斧调经: import java.util.ArrayList; /** * * @author 狱韬 */ public class SnakeBody { private int size=0; //队列的长度 private int cursor=-1; //指针 private ArrayList<int[]> list=null; //存储器 public SnakeBody() { list=new ArrayList<int[]>(); //存储器 } //返回...

泾川县18584194785: 数据结构编程题(栈与队列)? -
乾斧调经: 第一个:括号分左右括号,匹配的意思7a686964616fe59b9ee7ad9431333332643331就是左右括号个数相等 int left=0,right=0,i=0; char str[30]; //数组存放算术表达式 while(str[i]!='\0') { if(str[i]=='(') left++; if(str[i]==')') right++; i++; } if(left==right) ...

泾川县18584194785: 简述队列和栈的不同,以及在java语言中如何实现这两个数据结构 -
乾斧调经: 队列形似一水管左右都互通,所以先进入的数据从另一头先出来.栈形似一个水杯,先进去的肯定被压在最下面.后进去的肯定在最上面.所以先进去肯定后最后出来.后进去的肯定最先出来.理解这个.你去看相关的代码没问题!

泾川县18584194785: ...本曲没成功配对者坐着等待下一曲找舞伴.【要求】请设计一系统模拟动态地显示出上述过程,要求如下:(1) 应用“数据结构与算法”课程知识建立该... -
乾斧调经:[答案] 张老师骑摩托车的速度为45千米/小时,学生步行速度为5KM/小时,学校与车站相距15KM,甲.乙两名学生从学校出发,要在50分钟内到车站,可以请张老师用摩托车送,但摩托车后座只能做1人,学生不能驾车也不能利用其他交...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网