Ejemplo n.º 1
0
def kruskal(graph):
    sortedE = []

    for lst in graph:
        for edge in lst:
            sortedE.append(edge)

    sortedE.sort(key=lambda e: e.weight)  # sort by weight
    item = GraphNode(6, weighted=True, directed=False)  # 6 is # of numbers (?)

    for edge in sortedE:
        if not item.contains_cyle():
            item.insert(edge.source, edge.dest, edge.weight)

    return item
Ejemplo n.º 2
0
                demen[i][j] = demen[i - 1][j - 1]

            else:
                demen[i][j] = 1 + min(demen[i][j - 1],      # Insert
                                      demen[i - 1][j],      # Remove
                                      demen[i - 1][j - 1])  # Replace

    return demen[-1][-1]


s1 = "Hello"
s2 = "Hello"

print(edit_distance(s1, s2))
print()
# Test Cases

n = GraphNode(6, weighted=True, directed=True)
n.insert(4, 4, 1)
n.insert(5, 2, 3)
n.insert(4, 3, 2)
n.insert(3, 4, 1)  # Numbers can change to test
n.insert(2, 5, 0)
n.insert(1, 1, 4)
n.display()

wow = kruskal(n.al)
wow.display()

print(topological_sort(n))