/ S6 x$ p Y1 G0 U0 m $ p4 n' a, s* |/ o7 P乍一看,这不是散列表嘛!每个顶点对应一条链表,链表中存储的是与这个顶点相连接的其他顶点. 6 i- f4 X7 ], i, I9 o嘿嘿,直觉超棒!7 j B j+ t7 c+ e ^5 ~
3 N' `5 H2 T) C9 g: c
如果你对散列表熟悉的话,应该知道,在散列表中,如果链太长了,会导致冲突概率增大,复杂度也蹭的一下升高.而且吧,链表的存储方式你也知道,不是连续的,所以相对于数组来说, CPU 读取就会慢一些,相对于邻接矩阵的存储方式,在邻接表中查询两个顶点之间的关系就没那么高效了. ) N8 H* T& |2 y! m所以在实际开发中要注意遇到这种情况该如何处理,或者在刚开始的时候就直接设计好实现方式.比如可以将邻接表中的链表改为平衡二叉树,或者红黑树.$ n% R+ O5 ?9 E! ?' I- n' [6 w
# T3 { f$ g/ m) r! y8 J: ^( P2 ?我觉得对于数据结构来说,没有最好的,只有最合适的~+ v2 c5 m; Y, M" b0 m( f9 z) h
" T' B5 ]( n. g% T参考! m/ K) w. e8 b3 ^4 r' E
. f& B% x" U' |6 m E3 K9 n. c
极客时间—<数据结构与算法之美>3 y+ g. s3 U1 E+ J( M8 }( M M
———————————————— 4 x! Y, r) w# b) {版权声明:本文为CSDN博主「郑璐璐」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 . j; H I3 A7 B7 B" k原文链接:https://blog.csdn.net/zll_0405/article/details/1052098008 k$ J3 {2 a& R