關於鍊錶中的段錯誤 7 1 單鏈表的建立及遍歷

2021-10-23 02:16:20 字數 1044 閱讀 3234

當寫程式時,要求輸入n個數,如果未考慮n<=0的情況,極有可能導致段錯誤,像如下例題

7-1 單鏈表的建立及遍歷 (30分)

讀入n值及n個整數,建立單鏈表並遍歷輸出。

輸入格式:

讀入n及n個整數。

輸出格式:

輸出n個整數,以空格分隔(最後乙個數的後面沒有空格)。

輸入樣例:

在這裡給出一組輸入。例如:

2

10 5

輸出樣例:

在這裡給出相應的輸出。例如:

10 5

#include

#include

intmain()

*head=

null

,*p1=

null

,*p2=

null

; head =

(struct node*

)malloc

(sizeof

(struct node));

head->next =

null

; head->data =0;

p2=p1 = head;

int n=

0, i =0;

scanf

("%d"

,&n);if

(n<=0)

return0;

while

(i++

< n)

i =0;

head = head->next;

while

(head->next!=

null

)printf

("%d"

, head->data)

;return0;

}

剛開始,未加if(n<=0)return 0;,導致一直段錯誤。

關於在鍊錶中的段錯誤

如若在 合併鍊錶並去除重複元素 的執行語句 while p3 data p1 data p1 p1 p1 next while p3 data p2 data p2 p2 p2 next 用來跳過鍊錶l1 l2中與新建的鍊錶重複的元素,注意如果這麼寫的話可能會出現 段錯誤 當p1跳到null的時候進...

單鏈表的鍊錶拆分

1.定義三的指標變數 p q t,p 指向原鍊錶的頭結點 head1 新建另乙個頭結點 head2,q 指向head2,t 指向head1 的next 結點,兩個頭結點的 next 都設為空。2.按照條件分配t 指向的結點,如果將這個結點連線到 head1 的鍊錶中,1 讓p的 next 指向t 2...

鍊錶的實現 單鏈表 雙鏈表

鍊錶知識的引入 對於之前我們接觸到的陣列知識,要想儲存多個物件,首先想到的一定是物件陣列。但是陣列是乙個長度固定的線性結構,一旦內容不足或者過多,都會在成記憶體資源的浪費,由此引入鍊錶充分解決資源浪費問題。class node private屬性需要設定getter setter方法 public ...