波波老师您好,如果adj数组中每一个元素都是一个哈希表,那么此时每一个哈希表我们可以用一个长度为V-1的数组来表示所有可能相邻的顶点。如果顶点v与另一个顶点w相邻,则我们可以将adj[v][w]设置为1表示true。那么在这种情况下,虽然我们查找两点是否相邻的时间复杂度降到了O(1)级别,但是数据结构本质上变回了一个邻接矩阵,空间复杂度变回了O(V*V)。
而反观红黑树的实现,虽然查找两点相邻的时间复杂度是O(logV)级别,但空间复杂度依旧维持了O(V + E)。
请问波波老师,这样对比下来,是否可以说红黑树的实现会更优于哈希表的实现?还是说其实存在更好的哈希函数能避开哈希表空间复杂度的尴尬呢?
多谢老师!