具有值边的树数据结构

时间:2013-10-27 17:51:54

标签: tree edge

我有一张图表 - 例如 - 巴士站和它们之间的距离。

图:AB5,BC4,CD8,DC8,DE6,AD5,CE2,EB3,AE7

AB5:停止A以距离5等停止B.

Graph

您能否建议可以支持此图表的数据结构或对象设计。

我对此的看法:

节点 - 在这种情况下是一个公共汽车站 - 可以有一条或多条路线。 Route具有SourceNode和DestinationNode,其值为距离。 节点具有地图目的地名称 - >路由。

然后可以训练A-B-C的距离为9。

免责声明,这个问题来自几年前的求职申请。您的贡献仅仅是因为我对问题解决方案的兴趣而已。此外,我不会使用StackOverflow等外部源解决工作申请练习。

1 个答案:

答案 0 :(得分:1)

有几种数据结构来表示图形: Wikilink

如果你选择邻接矩阵,你会得到一个n * n矩阵,其中每个槽代表2个顶点之间的距离。我更喜欢这种表示,当你知道顶点的数量时(最好不要太多,这样你的矩阵不会占用太多空间)。如果需要,很容易找到2个顶点之间的距离,以及更新距离。 但是如果你不确定顶点的数量,或者这个数字将来可能增长,那么其他表示将是更好的选择。

以下是一些代码段:

    static void Main(string[] args)
        {
            int length = 7; //number of vertices
            int [,] Matrix = new int[length-1,length-1];
            //instantiate Matrix with 0's
            for(int i = 0; i < length; i++)
            {
                for(int j = 0; j < length; j++)
                {
                    Matrix[i,j] = 0;
                }
            }
            // Import your distances:
            Matrix[0, 1] = 5; // AB5
            Matrix[1, 2] = 4; //BC4 and so on..

        }

希望您了解如何继续。 如果要输入大量数据,可能需要从某个文件中读取数据并迭代填充Matrix中的数据。