文档详情

数据结构与算法课程设计程序及报告样本.pdf

发布:2021-11-16约1.05万字共8页下载文档
文本预览下载声明
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 数据结构与算法课程设计报告 数据结构与算法课程设计报告 题 目 题 目 两两相连的房间问题: 两两相连的房间问题: 一所奇怪的房子, 这所房子里有 n 个房间, 每个房间里有一 一所奇怪的房子, 这所房子里有 n 个房间, 每个房间里有一 些门通向别的房间, 可是这些门十分奇怪, 它们只能从房间 a 开 些门通向别的房间, 可是这些门十分奇怪, 它们只能从房间 a 开 向房间b, 也就是说, 一扇从 a 开向 b 的门是不能让一个人从 b 房 向房间b, 也就是说, 一扇从 a 开向 b 的门是不能让一个人从 b 房 间走到 a 房间的。你能计算一下任意两个房间之间都互相相通吗? 间走到 a 房间的。你能计算一下任意两个房间之间都互相相通吗? 问题分析 问题分析 此程序需要完成如下要求 : 在这所房子里, 从任意一个房间 此程序需要完成如下要求 : 在这所房子里, 从任意一个房间 开始, 按照开门的方向, 均能够找到一个合适的路线, 使得一个 开始, 按照开门的方向, 均能够找到一个合适的路线, 使得一个 人能够不重复的到达其它的每一个房间, 因此, 需以每一个房间 人能够不重复的到达其它的每一个房间, 因此, 需以每一个房间 都为一次起始点来走向其它的房间, 以此来判断这所房子里的任 都为一次起始点来走向其它的房间, 以此来判断这所房子里的任 意两个房间之间是否互相相通。 意两个房间之间是否互相相通。 实现本程序需要解决以下问题 : 实现本程序需要解决以下问题 : 如何表示每一个房间, 即存储房间的信息, 而且还要确定这所 1. 如何表示每一个房间, 即存储房间的信息, 而且还要确定这所 1. 房子里的各个房间的位置。 房子里的各个房间的位置。 各个房间之间的门, 以及门是从哪个房间开向哪个房间的该如 2. 各个房间之间的门, 以及门是从哪个房间开向哪个房间的该如 2. 何表示和存储的。 何表示和存储的。 从某一个房间开始, 如何走到其它各个房间, 即如何对房间进 3. 从某一个房间开始, 如何走到其它各个房间, 即如何对房间进 3. 行遍历。 行遍历。 资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 为了在遍历过程中, 不重复的遍历每一个房间, 该如何标记已 为了在遍历过程中, 不重复的遍历每一个房间, 该如何标记已 4. 4. 被遍历过的房间, 从而只访问未走过的房间。 被遍历过的房间, 从而只访问未走过的房间。 最后经过什么的遍历方式才能判断各个房间之间是否互相相 最后经过什么的遍历方式才能判断各个房间之间是否互相相 5. 5. 通。 通。 数据结构的选择和概要设计 数据结构的选择和概要设计 经过对题 目要求的理解, 我们能够用图来表示这所房子, 而 经过对题 目要求的理解, 我们能够用图来表示这所房子, 而 房子中的各个房间就相当于图中的各个结点, 由于房间的门是有 房子中的各个房间就相当于图中的各个结点, 由于房间的门是有 方向的, 一扇从 a 开向 b 的门是不能让一个人从 b 房间走到 a 房 方向的, 一扇从 a 开向 b 的门是不能让一个人从 b 房间走到 a 房 间的, 从而可知该图为有向图, 那么门就相当于有向图中的弧, 间的, 从而可知该图为有向图, 那么门就相当于有向图中的弧, 从一个门开向另一个门即代表有向图中弧的起始点和终止点。 从一个门开向另一个门即代表有向图中弧的起始点和终止点。 对于图的存储, 我采用邻接表的形式来存储, 并将每一个房 对于图的存储, 我采用邻接表的形式来存储, 并将每一个房 间进行编号, 对于邻接表, 则需要定义一个邻接表结点类型、 邻 间进行编号, 对于邻接表, 则需要定义一个邻接表结点类型、 邻 接表表头结点类型, 经过表头与结点的连接而将有向图中弧的信 接表表头结点类型, 经过表头与
显示全部
相似文档