数据结构实验报告-稳定婚姻匹配问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构与程序设计实验实验报告

哈尔滨工程大学

printf("输入第%d个女孩的优先表:\n",x);

for(y=0; y

scanf("%d", &(ladayArray[x][y]));

}

}

for(x=0; x

ladayNow[x] = NIL;//女生对应的男生

manPerfer[x] = 0;//每位男生选中的女生

manStartPos[x] = 0;//记录每位男生选取的是心目中第几位的女生

}

//进行第一轮迭代,每个男生都选择自己名单上排在首位的女生。

for(int pos=0; pos

ChoosePartener(manStack, pos, manArray, ladayArray, manPerfer, manStartPos,ladayNow, NUM);

}

//如果还有单身男生,重复进行选择过程

while(manStack.size()!=0){

int manPos = manStack.top();

manStack.pop();

ChoosePartener(manStack, manPos, manArray, ladayArray, manPerfer, manStartPos,ladayNow, NUM);

}

printf("\n稳定匹配:\n");

for(int i =0;i

cout<<"男孩: "<

}

return 0;

}

四、运行测试与分析

1. 输入男女人数

2. 输入男生优先表

3. 输入女生优先表

4. 输出稳定婚姻匹配结果

五、实验收获与思考

通过本次实验,巩固了关于查找算法的知识,同时在编程过程中发现了自己的不足,遇到了很多语法错误及逻辑错误,通过不断的调试解决问题,使我对编程有了更加深入的体会和认识。

六、源代码

#include

#include

#include

using namespace std;

#define MAX 10

#define NIL -1

int manArray[MAX][MAX];

int ladayArray[MAX][MAX];

int manPerfer[MAX]; //每位男生选中的女生

int manStartPos[MAX];//记录每位男生选取的是心目中第几位的女生

int ladayNow[MAX]; //女生对应的男生

stack manStack; // 还处于单身的男士

int GetPositionFromLaday(int ladayArray[][MAX], int laday, int man, int NUM){ for(int i=0; i

if(ladayArray[laday][i] == man)

return i;

return NIL;

}

void ChoosePartener(stack& manStack, int manPos, int manArray[][MAX],

int ladayArray[][MAX], int manPerfer[], int manStartPos[], int ladayNow[], int NUM)

相关文档
最新文档