Data structures 算法和数据结构的实现

Data structures 算法和数据结构的实现,data-structures,binary-tree,implementation,binary-search-tree,graph-algorithm,Data Structures,Binary Tree,Implementation,Binary Search Tree,Graph Algorithm,我已经成功地实现了一些算法和数据结构。 然而,我不确定如何实现一个图算法,因为那时我需要表示一个图。我试图从cormen等人的算法介绍中实现算法和数据结构。 然而,许多算法将图形作为输入,或者将树结构作为输入,这也不能仅仅作为文本提供。 我不知道如何实施迪克斯特拉、贝尔曼·福特、弗洛伊德·沃沙尔、克鲁斯卡尔等。 我可以将任何图表示为矩阵吗,即使它是加权图或有向图?因为我想我可以用多维数组来表示矩阵。我认为0或1可以指示是否存在边,但我不确定如何使用矩阵表示任何图形。如果算法将二叉树作为输入,那么

我已经成功地实现了一些算法和数据结构。 然而,我不确定如何实现一个图算法,因为那时我需要表示一个图。我试图从cormen等人的算法介绍中实现算法和数据结构。 然而,许多算法将图形作为输入,或者将树结构作为输入,这也不能仅仅作为文本提供。 我不知道如何实施迪克斯特拉、贝尔曼·福特、弗洛伊德·沃沙尔、克鲁斯卡尔等。 我可以将任何图表示为矩阵吗,即使它是加权图或有向图?因为我想我可以用多维数组来表示矩阵。我认为0或1可以指示是否存在边,但我不确定如何使用矩阵表示任何图形。如果算法将二叉树作为输入,那么二叉树呢


提前谢谢。

这是一个非常开放的问题。答案取决于您想要执行的操作类型

表示简单图形的一种方法是nxn数组,其中每个元素表示一条边。显然,您只需要一个三角形,可以忽略另一半,也可以复制信息以使查找更容易

对于具有大量顶点的稀疏图,可以将边表示为具有两个链接的节点,以便它可以位于两个列表中。每个顶点将具有链接在一起的边列表的头部