2013-02-26 69 views
0

當我打電話的printList功能在我的主,它不打印的所有值甚至認爲 值是那裏(我手動檢查中的printList功能)需要幫助印刷鏈表

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 2013-02-26 17:21:32

+4

代碼太多.. – 2013-02-26 17:25:18

回答

1

printList,它看起來像你最初設置tc,然後從不更新它們。

如果移動

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

,只是裏面的

while (currentPosition != NULL) { 

那麼我想它會工作(我沒有編譯器方便)。

+0

非常感謝!!!!!我只需要在第一while循環中移動t並在第二while循環中移動c – Jim 2013-02-26 17:49:18