for迴圈與while迴圈

來源:互聯網
上載者:User

標籤:線性表   問題   eof   儲存   頭結點   ++   div   class   creat   

      今天在寫線性表的鏈式預存程序中,遇到了一個比較奇葩的問題,就是同一段程式,用for迴圈可以順利執行,然而用while迴圈就提醒我“結點空間申請失敗!!!”,考慮了一上午都沒有頭緒。記錄下這個問題,日後繼續探究。

下面是用for迴圈實現單鏈表的建立

//尾插法建立帶頭結點的單鏈表ListNode *CreatListL(int n,DataType *x){    ListNode *head,*p1,*p2;    int i ;    head = (ListNode *)malloc(sizeof(ListNode));    if(head == NULL){        printf("結點空間申請失敗!!!\n");        return NULL;    }    p1 = head;    for(i = 0;i < n;i++){        p2 =(ListNode *)malloc(sizeof(ListNode));        if(p2 == NULL){            printf("結點空間申請失敗!!!\n");            return NULL;        }        p2->data = *(x + i);        p1->next = p2;        p1 = p2;    }    p1->next = NULL;    return head;}

下面是用while迴圈實現單鏈表的建立:

//尾插法建立帶頭結點的單鏈表 2 ListNode *CreatListL(int n,DataType *x) 3 { 4     ListNode *head,*p1,*p2; 5     int i = 0; 6     head = (ListNode *)malloc(sizeof(ListNode)); 7     if(head == NULL){ 8         printf("結點空間申請失敗!!!\n"); 9         return NULL;10     }11     p1 = head;12     while(i < n){13         p2 =(ListNode *)malloc(sizeof(ListNode));14         if(p2 == NULL){15             printf("結點空間申請失敗!!!\n");16             return NULL;17         }18         p2->data = *(x + i);19         p1->next = p2;20         p1 = p2;
i++;21 }22 p1->next = NULL;23 return head;24 }

 

for迴圈與while迴圈

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.