2013-02-26 70 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