Listas enlazadas, asignación de estaciones de autobuses

hola, tengo una tarea en la escuela en lenguaje c que necesito usar 2 estructuras (autobús, estación) y las vinculé para imprimir cada autobús y sus estaciones, y estoy atascado, el código y no imprime nada, por favor ayuda, este es mi código

typedef struct Station
{
    int no;
    char name[20];
    int avGetOn;
    int avGetOff;
    struct Station* next;
}Station;

typedef struct Bus
{
    int no;
    int capacity;
    Station* line;
}Bus;

Bus* fleet[BUSSES_NO];

Bus* NewBus(int no, int capacity)
{
    Bus* addNewBus=NULL;
    addNewBus = malloc(sizeof(Bus));
    if (addNewBus != NULL)
    {
        addNewBus->line = NULL;
        addNewBus->capacity = capacity;
        addNewBus->no = no;
    }
    else
    {
        printf("Allocation Failure!! \n");
    }
    return addNewBus;
}
Station* NewStation(int no, char name[], int getOn, int getOff)
{
    Station* addNewStation = NULL;
    addNewStation = malloc(sizeof(Station));
    if (addNewStation != NULL) {
        addNewStation->next = NULL;
        addNewStation->no = no;
        strcpy(addNewStation->name[20] ,name);
        addNewStation->avGetOn = getOn;
        addNewStation->avGetOff = getOff;
    }
    else
    {
        printf("Allocation Failure!! \n");
    }
    return addNewStation;
}
void AddStation(Station* station, Bus* bus)
{
    while (bus->line != NULL) 
    {
        bus->line->no = station->no;
        bus->line->name[20] = station->name;
        bus->line->avGetOn = station->avGetOn;
        bus->line->avGetOff = station->avGetOff;
        bus->line->next = station->next;
    }
}
void PrintStation(Station* station)
{
    while (station->next!=NULL)
    {
        printf("%d\t %s\t%d\t%d\t", station->no, station->name, station->avGetOn, station->avGetOff);
    }
}
void PrintBus(Bus* bus)
{
    printf("Bus No %d, Capacity = %d", bus->no, bus->capacity);   
    PrintStation(bus->line);
}
void initData()
{
    for (int i = 0; i < BUSSES_NO; i++) fleet[i] = NULL;
}
void main() {
    Bus *bus1 = NewBus(1, 50);
    Bus* bus2 = NewBus(2, 40);
    Station* station1 = NewStation(50, "05 Station-01 Bus", 4, 0);
    Station* station2 = NewStation(40, "05 Station-01 Bus", 21, 3);
    Station* station3 = NewStation(30, "05 Station-01 Bus", 20, 4);
    Station* station4 = NewStation(20, "05 Station-01 Bus", 15, 4);
    AddStation(station1,bus1);
PrintBus(bus1);
}

gracias de antemano

Answer