舞伴问题数据结构

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

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

#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,可以正常使用,如果我的代码有什么错误,或者知道我的疑惑,欢迎指导,一起进步。谢谢。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部