数据结构舞伴问题,简单的考查队列的运用,代码放在下面
我碰见的问题和一些想法都会写一下
#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,可以正常使用,如果我的代码有什么错误,或者知道我的疑惑,欢迎指导,一起进步。
谢谢。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)