from Edge import Edge
from Vertex import Vertex
from Algorithm import Algorithm

node1 = Vertex("55 (Красноярск)")
node2 = Vertex("67 (Дивногорск)")
node3 = Vertex("56 (Ачинск)")
node4 = Vertex("63 (Назарово)")
node5 = Vertex("75 (Ужур)")
node6 = Vertex("77 (Шарыпово)")
node7 = Vertex("65 (Боготол)")
node8 = Vertex("62 (Минусинск)") 
node9 = Vertex("64 (Артёмовск)")
node10 = Vertex("74 (Сосновоборск)")
node11 = Vertex("58 (Железногорск)")
node12 = Vertex("76 (Уяр)")
node13 = Vertex("70 (Заозёрный)")
node14 = Vertex("59 (Зеленогорск)")
node15 = Vertex("66 (Бородино)")
node16 = Vertex("60 (Канск)")
node17 = Vertex("72 (Иланский)")
node18 = Vertex("61 (Лесосибирск)")
node19 = Vertex("69 (Енисейск)")
node20 = Vertex("73 (Кодинск)")
node21 = Vertex("71 (Игарка)")
node22 = Vertex("68 (Дудинка)")
node23 = Vertex("57 (Норильск)")


edge1 = Edge(0.038,node1,node2)
edge2 = Edge(0.150,node1,node3)
edge3 = Edge(0.045,node3,node4)
edge4 = Edge(0.097,node4,node5)
edge5 = Edge(0.110, node4,node6)
edge6 = Edge(0.072, node5, node6)
edge7 = Edge(0.067, node3, node7)
edge8 = Edge(0.290, node5, node8)
edge9 = Edge(0.400, node2, node8)
edge10 = Edge(0.170, node8, node9)
edge11 = Edge(0.042, node1, node10)
edge12 = Edge(0.025, node10, node11)
edge13 = Edge(0.102, node1, node12)
edge14= Edge(0.039, node12, node13)
edge15= Edge(0.022, node13, node14)
edge16= Edge(0.017, node13, node15)
edge17= Edge(0.091, node13, node16)
edge18= Edge(0.030, node16, node17)
edge19= Edge(0.370, node11, node18)
edge20= Edge(0.042, node18, node19)
edge21= Edge(0.700, node18, node20)
edge22= Edge(1.300, node19, node21)
edge23= Edge(0.280, node21, node22)
edge24= Edge(0.091, node22, node23)


node1.adjacenciesList.append(edge1)
node1.adjacenciesList.append(edge2)
node3.adjacenciesList.append(edge3)
node4.adjacenciesList.append(edge4)
node4.adjacenciesList.append(edge5)
node6.adjacenciesList.append(edge6)
node3.adjacenciesList.append(edge7)
node5.adjacenciesList.append(edge8)
node8.adjacenciesList.append(edge9)
node8.adjacenciesList.append(edge10)
node1.adjacenciesList.append(edge11)
node10.adjacenciesList.append(edge12)
node1.adjacenciesList.append(edge13)
node12.adjacenciesList.append(edge14)
node13.adjacenciesList.append(edge15)
node13.adjacenciesList.append(edge16)
node13.adjacenciesList.append(edge17)
node16.adjacenciesList.append(edge18)
node11.adjacenciesList.append(edge19)
node18.adjacenciesList.append(edge20)
node18.adjacenciesList.append(edge21)
node19.adjacenciesList.append(edge22)
node21.adjacenciesList.append(edge23)
node22.adjacenciesList.append(edge24)

unvisitedList = []
unvisitedList.append(node1)
unvisitedList.append(node2)
unvisitedList.append(node3)
unvisitedList.append(node4)
unvisitedList.append(node5)
unvisitedList.append(node6)
unvisitedList.append(node7)
unvisitedList.append(node8)
unvisitedList.append(node9)
unvisitedList.append(node10)
unvisitedList.append(node11)
unvisitedList.append(node12)
unvisitedList.append(node13)
unvisitedList.append(node14)
unvisitedList.append(node15)
unvisitedList.append(node16)
unvisitedList.append(node17)
unvisitedList.append(node18)
unvisitedList.append(node19)
unvisitedList.append(node20)
unvisitedList.append(node21)
unvisitedList.append(node22)
unvisitedList.append(node23)


algorithm = Algorithm(unvisitedList);
algorithm.constructSpanningTree(node1)