关于泛型

来源:2-8 实现邻接表的改进

奋斗的小鸟22

2021-06-12

你好 波波老师!
邻接矩阵或者邻接表存储的数据都是Integer类型的,因为在实际项目中 需要存储的对象类型大多数是引用类型,我想问下,下面的课程是否支持使用泛型存储?

写回答

1回答

liuyubobobo

2021-06-12

这个课程中的代码不支持泛型。


这个课程主要介绍图的算法的逻辑,所以,你可以在理解这个课程的算法逻辑的基础上,将这样的算法逻辑应用到你需要的数据类型上,或者编写进一步编写你需要的泛型算法。


我之前的课程尝试过进一步抽象图论方面的泛型代码,但是教学效果不好。因为大多数同学会陷入处理泛型的代码中,而忽略学习图论算法本身。理解算法的逻辑是我的课程的主要任务。


=================


另外,课程介绍到这里,其实本身也还不涉及泛型的问题。邻接矩阵中的 Integer 表示的是节点的索引编号,而节点的索引编号肯定是整型。


如果你的节点包含更复杂的信息,可以用这些节点编号作为索引,在专门的数据中去查找。比如每个节点表示的是一个学生,可以在 students[i] 中找到学生的所有信息;比如每个节点表示的是一个城市,可以在 cities[i] 中表示相应城市的所有信息。而在图论算法中,我们就是在抽象的讨论 i 个节点和其他节点的关系。


支持泛型的图论算法处理的是:1)在有权图中,权的类型可以是变化的;2)由于图可以表示成邻接表和邻接矩阵,所以一个图论算法应该同时支持这两种图的类型。在这个课程中,我们后续讲解的所有的图的算法,将只应用于邻接表。因为邻接表是最常见的图的表示方式。在绝大多数情况下,邻接矩阵没有额外的优势。


继续加油!:)

0
0

玩转算法系列--图论精讲(Java版)

30+小时系统学习,bobo带你克服被图论支配的恐惧

1599 学习 · 330 问题

查看课程