Ciao a tutti ho il seguente problema: voglio inserire un nodo isolato in un grafo rappresentato con matrice di adiacenza dinamica. Cioè la matrice dinamica[NxN] è rappresentata tramite un vettore dinamico[NxN].
codice:
void INSERISCI_NODO(int n, int **vt)/*inserisce nodo isolato n esimo*/
{
 int i,j;
 int nuovi=(n+1)*(n+1);
 *vt=(int*)realloc(*vt,nuovi*sizeof(int));
 for (i=0; i<(n*(n+1)); i++)
   { 
    
    if ((i!=0)&&(i%n==0))
      {
       for (j=(((n+1)*(n+1))-1); j>i; j--)
           {
            (*vt)[j]=(*vt)[j-1];
           } 
       (*vt)[i]=0;
      } 
    }
 /*gli ultimi n elementi saranno 0 */
 for (j=i; j<((n+1)*(n+1)); j++)
    (*vt)[j]=0; 
 printf("vettore NUOVO NODO ISOLATO e' : \n");         
 for (i=0; i<((n+1)*(n+1)); i++)
   { 
     if((i!=0)&&(i%(n+1)==0))
        printf("  ");
     printf("%d ",(*vt)[i]);
   }  
 printf("\n");           

}
int main()
{
 int nodi,i;
  int *vet=NULL;
  printf("dammi il numero di nodi : \n");
  scanf("%d",&nodi);
  RIEMPI(nodi,&vet);
  printf("vettore INIZIALE e' : \n");
  for(i=0; i<(nodi*nodi); i++)
    {
     if((i!=0)&&(i%nodi==0))
       printf("  ");
     printf("%d ",vet[i]);
    } 
  printf("\n");
il vettore vet (dichiarato come puntatore ad interi) è riempito nella void riempi. Poi richiamo la void INSERISCI_NODO dove gli passerò il vettore [NxN] elementi che aggiungendo un nodo diventerà (riallocandolo)di (N+1)*(N+1) elementi.
Esempio se vet di 3 nodi è:
011 101 110
aggiungendo un elemento dovrebbe essere:
0110 1010 1100 0000
Invece il mio output è sbagliato.
Spero di essere stato chiaro e che qualcuno mi aiuti grazie.