Árvore em C a partir de arquivo de texto

Boa noite galera,

Tenho o seguinte código que faz a leitura de um arquivo txt em C e preenche um vetor…

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct p {
  char palavra[40];
  }p;
int tmp;
char string[20];
p vetor[30];
int j = 0;

FILE *fp;
int main()
{
    fp = fopen("cidades.txt", "r");
    if (!fp) return 0;
    while(!feof(fp) && !ferror(fp))

       {
          
          tmp = fgetc(fp);
          int i = 0;
          
          while((tmp != ' ') && (tmp != ',') && (tmp != ';') && (tmp != '.'))
             {
                  string[i] = tmp;
                  tmp = fgetc(fp);
                  if(tmp == EOF)
                  break;
                  i++;
                  
             }
                        
                  string[i] = '\0'; 
                  strcpy(vetor[j].palavra,string);
                  printf("%s ", palavra); 
                  printf("%s ", vetor[j].palavra);                  
                  j++;
                    
}

fclose(fp);
system("pause");
return 0;
}

Após a execução ele o imprime o vetor com o resultado

A B 13
A C 14
C D 15
C F 16
D E 17

Minha dúvida seria como montar uma árvore com esse vetor, onde A seria minha primeira cidade, B a segunda e 13 a distância, e assim por diante.

Desde já obrigado.