總結《資料結構基礎》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結...