- 相对于树来说更复杂的非线性数据结构
- 无向图
- 表示顶点到顶点没有方向
- 有向图
- 表示顶点到顶点有方向
- 入度:有多少个顶点进入
- 出度:有多少个顶点出去
- 六度分割理论
- 表示顶点到顶点有方向
- 带权图
- 表示顶点到顶点有权重
- 邻接矩阵:
- 缺点:对于无向图来说,用邻接矩阵存储是浪费空间的,因为邻接矩阵是对称的,并且对于大量顶点需要跟多的空间来存储
- 优点:直观,并且可以利用矩阵计算,求最短路径
- 邻接表:
- 如何实现微博的关注关系
- 用邻接表来实现用户的关注的人
- 类似链表链表对缓存不友好,可以通过其他方式优化比如hash,跳表,红黑二叉树等来实现快速查询,B+树
- 可以通过其他存储方式落地,比如mysql建立表。
- 用逆邻接表来实现用户的粉丝
- 用邻接表来实现用户的关注的人
- 搜索
- 广度搜索:地毯式搜索
- 深度搜索:深度优先式搜索