刪除單鏈表中奇數號的結點

2021-10-16 08:39:12 字數 869 閱讀 3173

總結《資料結構基礎》c語言版 第2版,ellis horowitz著,朱仲濤譯

4.2節,page120,習題5

假設p指向乙個單鏈表的頭結點,編寫函式,從表頭開始,刪除表中1,3,5,…,奇數號結點。討論演算法的複雜度。

**如下:

#include

#include

#include

using

namespace std;

typedef

struct nodelistnode;

listnode*

create_list

(int length)

listnode *first =

(listnode*

)malloc

(sizeof

(listnode));

first-

>link =

null

; listnode *p = first;

int value;

printf

("請輸入%d個整數:\n"

,length)

;for

(int i=

1;i<=length;i++

) p-

>link =

null

;return first;};

void

del_odd

(listnode* list)

}void

print_list

(listnode* list)

while

(tmp)

}int

main()

單鏈表結點刪除

本題要求實現兩個函式,分別將讀入的資料儲存為單鏈表 將鍊錶中所有儲存了某給定值的結點刪除。鍊錶結點定義如下 truct listnode struct listnode readlist struct listnode deletem struct listnode l,int m 函式readli...

刪除單鏈表中的重複結點

方法一 遞迴 link delsame link head 沒有重複的元素,加入list後,為了保持不變式 要從list兩兩比較,如果有相同元素必定在開頭兩個 link pointer,temp head if head next null return head head next delsame...

刪除單鏈表某個結點

題目 刪除帶頭結點的單鏈表l中的結點p,p不是最後乙個結點,要求時間複雜度為o 1 解題思路 如果不要求時間複雜度為o 1 我們可以找出p的前驅結點,然後很容易就刪除p。現在要求時間複雜度為o 1 因為p不是最後乙個結點,知道結點p我們可以刪除p的後繼結點,那麼我們可以把p的後繼結點元素的值賦給p結...