本題要求實現兩個函式,分別將讀入的資料儲存為單鏈表、將鍊錶中所有儲存了某給定值的結點刪除。鍊錶結點定義如下:
truct listnode ;
struct listnode *readlist();
struct listnode *deletem( struct listnode *l, int m );
函式readlist從標準輸入讀入一系列正整數,按照讀入順序建立單鏈表。當讀到−1時表示輸入結束,函式應返回指向單鏈表頭結點的指標。
函式deletem將單鏈表l中所有儲存了m的結點刪除。返回指向結果煉表頭結點的指標。
#include #include struct listnode ;
struct listnode *readlist();
struct listnode *deletem( struct listnode *l, int m );
void printlist( struct listnode *l )
printf("\n");
}int main()
/* 你的**將被嵌在這裡 */>
10 11 10 12 10 -1
10 11 12
struct listnode *p,*tail,*head=null;
while(1)
return head;
}struct listnode *deletem( struct listnode *l, int m )
if(l==null) return null;
p1=l;
p2=l->next;
while(p2)
else p1=p2;
p2=p1->next;
}return l;
}
刪除單鏈表某個結點
題目 刪除帶頭結點的單鏈表l中的結點p,p不是最後乙個結點,要求時間複雜度為o 1 解題思路 如果不要求時間複雜度為o 1 我們可以找出p的前驅結點,然後很容易就刪除p。現在要求時間複雜度為o 1 因為p不是最後乙個結點,知道結點p我們可以刪除p的後繼結點,那麼我們可以把p的後繼結點元素的值賦給p結...
習題11 8 單鏈表結點刪除
本題要求實現兩個函式,分別將讀入的資料儲存為單鏈表 將鍊錶中所有儲存了某給定值的結點刪除。鍊錶結點定義如下 struct listnode struct listnode readlist struct listnode deletem struct listnode l,int m 函式readl...
實驗11 2 8 單鏈表結點刪除
本題要求實現兩個函式,分別將讀入的資料儲存為單鏈表 將鍊錶中所有儲存了某給定值的結點刪除。鍊錶結點定義如下 struct listnode 函式介面定義 struct listnode readlist struct listnode deletem struct listnode l,int m ...