我知道我们创建了一个链表数组,通过数组的索引表示每个顶点。但是我们如何存储与每个顶点相关的实际数据呢?例如,如果我有一个包含顶点的有向图:1. John 2. Mary 3. Sunny,边为 (John,Mary) 和 (Mary,Sunny),我们可以使用 ( 1,2) 和 (2,3) 作为边。但是我们在哪里存储与 1,2 和 3 相关的名称呢?
我做了什么?
我创建了一个类“vertexnode”,它存储了一个名称和一个指向“edgenode”类对象的指针。然后我创建了一个包含“vertexnode”类对象的数组。'edgenode' 类包含 1)此数组的索引,其中索引表示边的第二个端点,以及 2)指向 'edgenode' 的下一个对象的指针。然后我在图中添加了顶点(名称)和边(名称对)。程序运行正常。
我想知道这是否是一种有效的方法,或者最好将名称单独存储在一个数组中,或者还有其他方法?基本上,我想知道传统上是如何完成的?
PS:请避免在您的答案中使用 STL 或 Boost 或类似的东西。我是图表新手,我想知道事情在基本层面是如何工作的,而不是一些已经为我们准备好的功能。提前致谢。