我计划使用C++来表示一个相当大、稀疏和无向的图结构。该图将包含10,000个以上的顶点,每个顶点的度数约为10。
我已经阅读了有关使用邻接矩阵或邻接表来表示图形的一些背景资料,但它们似乎都不适合我的需求。在我的情况下:
- 图中的每条边都有一些属性(数值)附加到上面
- 在初始图形创建后,可以删除边,但永远不能创建新的边
- 顶点永远不会被创建或删除
- 主要的图查询操作将是查找与边E连接的其他边。这相当于找到E两端的顶点连接的边。
正是最后一点使得邻接矩阵似乎不太合适。据我所见,每次查询都需要2*N个操作,其中N是图中节点的数量。
我相信,邻接表可以减少所需的操作,但由于我正在每个边上包含参数,它看起来并不适合——即因为邻接表存储每个
有没有更好的方法来存储我的数据,使得这些查询操作更快,并且我可以存储每个带有参数的边?我不想开始实现错误的方法。