1
0
This repository has been archived on 2024-09-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
PathFinding_in_Go/main.go
2021-03-28 20:25:57 +01:00

49 lines
1.1 KiB
Go

package main
import (
"fmt"
)
func main() {
MyGraph := DirectedGraph{}
// Instantiate Nodes
FirstNode := Node{Data: City{Name: "Amsterdam", Population: 821_752}}
SecondNode := Node{Data: City{Name: "Dublin", Population: 544_107}}
thirdNode := Node{Data: City{Name: "Berlin", Population: 3_645_000}}
fourthNode := Node{Data: City{Name: "Paris", Population: 2_161_000}}
// Setup relations
FirstNode.Edges[0] = Edge{To: &thirdNode}
SecondNode.Edges[0] = Edge{To: &thirdNode}
FirstNode.Edges[1] = Edge{To: &SecondNode}
thirdNode.Edges[0] = Edge{To: &fourthNode}
// Add Nodes to graph
MyGraph.AddNode(&FirstNode)
MyGraph.AddNode(&SecondNode)
MyGraph.AddNode(&thirdNode)
MyGraph.AddNode(&fourthNode)
fmt.Println("Whats inside the graph")
for index, node := range MyGraph.nodes {
if (node == Node{}) {
continue
}
fmt.Printf("%d %s\t(Pops: %d)\n", index, node.Data.Name, node.Data.Population)
for _, edge := range node.Edges {
if (edge == Edge{}) {
continue
}
fmt.Printf(
"\t- Has a connection to %s\t(Travel Cost: %d)\n",
edge.To.Data.Name,
edge.Cost())
}
fmt.Println()
}
}