# distance(j) is distance from tree to node j
  # source(j) is which node of so
-far connected MST
  #                      is closest to node j
 
1   For all nodes i
 
2     distance(i) = infinity        # no connections
 
3     intree(i) = False             # no nodes in tree
 
4     source(i) = nil 

 
5   treesize = 1                    # add node 1 to tree
 
6   treecost = 0                   
 
7   intree(1= True
 
8   For all neighbors j of node 1   # update distances
 
9      distance(j) = weight(1,j)
10     source(j) = 1 

11   while (treesize < graphsize)
12     find node with minimum distance to tree; call it node i
13     assert (distance(i) != infinity, "Graph Is Not Connected"

    # add edge source(i),i to MST
14     treesize = treesize + 1
15     treecost = treecost + distance(i)
16     intree(i) = True              # mark node i as in tree 

    # update distance after node i added
17     for all neighbors j of node i
18       if (distance(j) > weight(i,j))
19         distance(j) = weight(i,j)
20         source(j) = i