I've got a majority of this assignment finished, except I'm having an terrible time figuring out how to implement prim's algorithm. I understand it on paper fine and can work it out by hand, coding it is proving difficult though. I've spent quite a few days on this and this is a last ditch effort by posting here.

I'm taking an adjacency matrix from file and creating a minimal spanning tree from it.
lets just say

0 2 4 -1 -1
2 0 4 6 -1
4 4 0 6 4
-1 6 6 0 4
-1 -1 4 4 0

for our purposes here
the -1's represent infinity, because the nodes arent connected in that case.

User gets to pick the starting vertex, so I know that will be the first node in my tree. lets say that vertex happened to be 3. since it's stored as a 2d array, we go down that third row because vertex is 3 and find the smallest distance, which it should find 5 is the smallest right. now from there, you have the third, or the fifth column to find the next smallest item from, because we're now connected to the 5th row. Am I explaining it too unclear?

I can't seem to figure out how to get it to properly comb through all of those
YouTube - Prim's algorithm displays it wonderfully visually, that's kind of what i'm trying to recreate.

Code:
  for (j=0; j<=n; j++)
    {
         int smallestWeight = 100;
         for (i=1; i<=n; i++)
         {
              if (tree[i])
                 { 
                   if((weight[vertex][i] < smallestWeight) && (weight[vertex][i]>0))
                   {
                      smallestWeight=weight[vertex][i];
                      tree[i]=1;
                   }
                 }
         }
         mst[vertex][i]=smallestWeight;
         mst[i][vertex]=smallestWeight;
         
         
    }
Guidance in the right direction would be fantastic if someone could help.