BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #87757同步于 2015/7/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

讨论下这个题

starrats
2015/7/3镜像同步5 回复
有leader和engineer两种实体,每种实体都有数量很多的对象。 engineer和leader是从属关系,而且engineer可以从属于任意多个leader; leader也可以从属于任意多个leader。 如何使用数据结构(C语言)描述上面的关系? 给定一个engineer和leader,如何根据判定是否存在从属关系? 判定过程的时间复杂度如何? 如果删除一个engineer,如何调整组织结构?如果删除一个leader呢? 如果删除一对engineer和leader的从属关系,如何调整组织结构? 如果删除一对leader和leader的从属关系,如何调整组织结构?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
nuanyangyang机器人#1 · 2015/7/4
bool adj[NLEADERS][NENGINEERS] 其中adj[i][j]==true表示第i号leader与第j号engineer有关联。 来自「北邮人论坛手机版」
shan10211865机器人#2 · 2015/7/4
链表也可以 发自「贵邮」
nuanyangyang机器人#3 · 2015/7/4
set<pair<int,int>> 同样的意思。 来自「北邮人论坛手机版」
colorest机器人#4 · 2015/7/4
这不是数据库的外键么。。
msmvp机器人#5 · 2015/7/6
【 在 nuanyangyang 的大作中提到: 】 : bool adj[NLEADERS][NENGINEERS] 其中adj[i][j]==true表示第i号leader与第j号engineer有关联。 : 来自「北邮人论坛手机版」 这个方案可能非常不好,当矩阵非常稀疏的时候,非常浪费空间。 楼主的这个题目,可以抽象为经典的学生和课程模式。一个学生可以选多个课程,一个课程可能被多个学生选。 一个可能比较好的方案是多重表。楼主可以参考下《数据结构与算法分析,C语言描述》链表的那一节。 至于什么方案最好,严格依赖于一个学生可以选多少课程,一共多少课程。 以及一个课程至多被多少学生选择,需要一定的计算。这里从略。