2013-02-26 2 views
0

Когда я звоню перечень печати функции в моем основных, он не печатает все значения даже мысли значений есть (я проверил вручную в перечне печати функции)Нужна помощь при печати связанных списков

void printList(listNode *start) 
{ 
    listNode *currentPosition = start->next; 


    threadList *t; 
    t= currentPosition->tList->next; 

    cList *c; 
    c = currentPosition->tList->next->cpuList->next; 

    if (currentPosition == NULL) 
    { 
     printf("list is empty\n"); 
    } 
    else 
    { 
     while (currentPosition != NULL) 
     { 
      printf("process #: %d # of thread: %d\n",currentPosition->processNumber,currentPosition->numThread); 

      while (t != NULL) 
      { 

       printf("thread #: %d Arrival time: %d # CPU: %d\n",t->threadNumber,t->arrivalTime,t->numCPU); 


       while (c != NULL) 
       { 

        printf("Burst #: %d CPU Time: %d io Time: %d\n",c->cNum,c->cpuTime,c->ioTime); 

        c=c->next; 
       } 


       t=t->next; 
      } 
      currentPosition = currentPosition->next; 
     } 
    } 
} 

Первый узел всего моего связанного списка - фиктивный узел. Может кто-нибудь, пожалуйста, помогите мне выяснить, где я иду не так?

+0

Это домашнее задание? – blueshift

+4

Слишком много кода .. –

ответ

1

В printList, похоже, вы устанавливаете t и c изначально, а затем никогда не обновляете их.

При перемещении

t= currentPosition->tList->next; 
c = currentPosition->tList->next->cpuList->next; 

только внутри

while (currentPosition != NULL) { 

Тогда я думаю, что это будет работать (я не имею компилятор под рукой).

+0

Спасибо большое !!!!! мне просто нужно было переместить t внутри 1-го цикла while и c внутри второго цикла while – Jim

Смежные вопросы