关于使用Ada实现Kruskal算法,我不确定从哪里开始。
在编写程序之前,我试图仔细考虑一切,但对于我应该使用哪些数据结构以及如何表示每个元素等问题感到相当迷茫。
我的最初想法是用邻接列表表示完整树,但是阅读维基百科后,算法说明要
创建一个森林F(一组树),其中图中的每个顶点都是单独的树
,我不确定如何在不很快变得非常混乱的情况下实现这一点。
接下来它说要创建包含图中所有边的集合S
,但再次我不确定最好的方法是什么。我想到了一个记录数组,具有to
,from
和weight
,但我对forest
感到困惑。
最后,我正在尝试弄清楚如何知道边连接两个树,但同样不确定完成所有这些工作的最佳方式是什么。
Ada.Containers.Vectors
。 - Simon Wright