舞伴问题数据结构

舞伴问题数据结构,第1张

数据结构舞伴问题,简单的考查队列的运用,代码放在下面

我碰见的问题和一些想法都会写一下

#include
#include
#define max 40
#define ok 1
#define error 0
#define overflow -1
using namespace std;
typedef struct w{
	char name[20];
	char sex;
}peo;
typedef struct z{
	peo *base;
	int front;
	int rear;
}sq;
//初始化
int Init(sq &M){
	M.base=new peo[max];
	M.front=M.rear=0;
//	printf("?\n");
	return ok;
} 
//求长度
int length(sq M){
	return(M.rear-M.front+max)%max;
} 
//入队
int push(sq &M,peo e){
	if((M.rear+1)%max==M.front)
	return error;
	M.base[M.rear]=e;
	M.rear=(M.rear+1)%max;
//	printf("jiuz");
	return ok;
} 
//出队
int del(sq &M,peo &e){
	if(M.front==M.rear)
	return error;
	e=M.base[M.front];
	M.front=(M.front+1)%max;
	return ok;
} 
//取队头
peo get(sq M){
	if(M.front!=M.rear)
		{
//			printf("jiu");
		return M.base[M.front];
		}
} 
void dance(peo dancer[],int num){
	sq L;//男 
	sq p;//女
	Init(L);
	Init(p);
	peo h;
	for(int i=0;i>num;
	peo dancer[max];
	for(int i=0;i>dancer[i].name;
		cout<<"sex"<>dancer[i].sex;
	}
	dance(dancer,num);
		
}

 我在定义结构体数组dancer时,最开始是把max换成num的,但是不知道为什么,输入一个人后会无故结束,我觉得可能是因为分配空间出了什么问题吧。


换成max之后就没有问题了,然后就是for循环之中的dancer[i],我把i写成num了,让我在迷惑了一段时间。


然后就没有什么其他问题了,对于ok,error,overflow的使用,我百度用的不太行,没找到好的解释,使用规则也不太清楚。


如果有人知道,恳请指导,代码测试了几次,应该没什么问题,dev 5.11,可以正常使用,如果我的代码有什么错误,或者知道我的疑惑,欢迎指导,一起进步。


谢谢。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/577589.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存