刪除單鏈表偶數節點 20分

2021-10-01 15:10:42 字數 1732 閱讀 4978

本題要求實現兩個函式,分別將讀入的資料儲存為單鏈表、將鍊錶中偶數值的結點刪除。鍊錶結點定義如下:

struct listnode 

;

函式介面定義:

struct listnode *

createlist()

;struct listnode *

deleteeven

(struct listnode *head )

;

函式createlist從標準輸入讀入一系列正整數,按照讀入順序建立單鏈表。當讀到−1時表示輸入結束,函式應返回指向單鏈表頭結點的指標。

函式deleteeven將單鏈表head中偶數值的結點刪除,返回結果鍊錶的頭指標。

裁判測試程式樣例:

#include

#include

struct listnode

;struct listnode *

createlist()

;struct listnode *

deleteeven

(struct listnode *head )

;void

printlist

(struct listnode *head )

printf

("\n");

}int

main()

/* 你的**將被嵌在這裡 */

輸入樣例:

122

3456

7-1

輸出樣例:

135

7

思路

本題和前邊的差不多

需要注意的是建立鍊錶可以建立成帶頭結點的也對,

但是返回的時候記得要返回第乙個結點(根據看int main 中的程式決定出來的)(不帶頭結點也對只要返回第乙個數的指標即可)

刪除也是因為 int main中給傳入的head指的是第乙個結點所以要分為在頭刪還是在中間刪

struct listnode *

createlist()

//看測試程式void printlist( struct listnode *head )中 struct listnode *p = head; printf("%d ", p->data);

//說明它是從第乙個元素開始輸出的所以返回的是第乙個元素的指標head->next而不是head

return head->next;

}//上邊的做法和下邊的做法都對

/*struct listnode *createlist()

else

}return head;}*/

struct listnode *

deleteeven

(struct listnode *head )

else}if

(head==

null

)p=head;

ptr=p->next;

while

(ptr!=

null

)else

ptr=p->next;

}return head;

}

6 13 刪除單鏈表偶數節點 20 分

本題要求實現兩個函式,分別將讀入的資料儲存為單鏈表 將鍊錶中偶數值的結點刪除。鍊錶結點定義如下 struct listnode 函式介面定義 struct listnode createlist struct listnode deleteeven struct listnode head 函式cr...

實驗11 2 4 刪除單鏈表偶數節點 20分

本題要求實現兩個函式,分別將讀入的資料儲存為單鏈表 將鍊錶中偶數值的結點刪除。鍊錶結點定義如下 struct listnode struct listnode createlist struct listnode deleteeven struct listnode head 函式createlis...

資料結構 刪除單鏈表偶數節點

本題要求實現兩個函式,分別將讀入的資料儲存為單鏈表 將鍊錶中偶數值的結點刪除。鍊錶結點定義如下 struct listnode 函式介面定義 struct listnode createlist struct listnode deleteeven struct listnode head 函式cr...