#include <cstdlib>
#include <iostream>
#include <stdio.h>

using namespace std;
#define n 50
struct element{
int nr;
element *next;
};
struct wezel{
int color;
element *link;
};
wezel T[n];


void wczytaj_graf_z_klawiatury(int G[][n], int k)

{
     int l=0, i, j,ile_p;
     for(int i=0; i<k; i++)
     {
     printf("Podaj liczbe powiazan wierzcholka %d: \n", i+1);
     scanf("%d",&ile_p);
     printf("Wierzcholek nr %d laczy sie z: \n", i+1);
     
            for(int j=0; j<ile_p; j++)
            {
                    scanf("%d",&l); 
                    if (l==0)   G[i][i]=0;
                    
                     G[i][l-1] = 1; 
                     G[l-1][i] = 1; 
                     if (i==(l-1))   G[i][i]=0; 
                     
            }                                
     }
     printf("\n");}




int main(int argc, char *argv[])
{
   
 
    printf("Ile graf ma miec wierzcholkow??  ");
    int G[n][n],k;
    wezel T[n];
    scanf("%d",&k);
    
    wczytaj_graf_z_klawiatury(G,k);
    
     element *koniec = NULL, *nowy = NULL;
     for (int i=1; i<=k; i++)
     T[i].link = NULL;
     for (int i=0; i<k; i++)
     {
     for (int j=0; j<k; j++)
         if (G[i][j]==1)
         { 
           if (T[i+1].link = NULL)
           nowy=(element *)malloc(sizeof(element));
           nowy->nr=j;
           nowy->next=NULL;
           T[i+1].link = nowy;
           koniec = nowy;
         }
         else {
                    nowy=(element *)malloc(sizeof(element));
                    nowy->nr=j;
                    koniec->next=nowy;
                    koniec = nowy;  
              }  
              }      

   
  
    system("PAUSE");
    return EXIT_SUCCESS;
}

Mam problem program uruchamia się, ale po chwili nie odpowiada. Może mi ktoś podpowie co źle jest napisane??