不帶頭結點的單鏈表刪除任意乙個節點

2021-08-04 03:41:58 字數 1045 閱讀 9351

#include#include//刪除單鏈表中的任意乙個節點,可能是傳節點刪除,也可能是傳節點的值刪除

typedef struct _node

node,*linklist;

//不帶頭結點的單鏈表

void init(linklist* list)

void creat(linklist* list)

else

r->next = node;

} scanf("%d", &data); }}

void print(linklist list)

printf("\n");}/*

bool deletenode(node* r,linklist* list)

node* s = *list;

while (s != null && s->next != r)

if (s == null)

node* k = s->next;

s->next = s->next->next;

free(k);

return true;}*/

//根據節點刪除,還有一種方法就是,把它下乙個節點的資料給它自己,然後刪除它的下乙個節點

bool deletenode(node* r, linklist* list)

if (r->next != null)

//其它情況和下面相似

}bool deletenode(int data, linklist* list)

node* s = *list;

while (s != null && s->next -> val != data)

if (s == null)

node* r = s->next;

s->next = s->next->next;

free(r);

return true;

}int main(void)

else

print(list);

return 0;

}

不帶頭結點的單鏈表

slist.h pragma once typedef int sldatatype typedef struct slistnode slistnode 不帶頭節點的單鏈表 鍊錶初始化 void slistinit slistnode phead 建立新結點 slistnode slistnewn...

不帶頭結點的單鏈表

不帶頭結點的鍊錶的實現 核心是直接設定頭指標指向第乙個節點 要注意此時的l的位址可能會發生改變.同時還要注意一級指標和二級指標的區別.注意linklist l和linklist l的區別 和帶結點的單鏈表的操作相比較,要考慮到頭指標就是頭結點,在一些會改變頭結點的情況下要仔細考慮.include i...

不帶頭結點的單鏈表

單鏈表也可以不設頭結點,如圖212 所示。顯 然,基於這種結構的基本操作和帶有頭結點的線性鏈 表基本操作是不同的。bo2 8.cpp 是不帶頭結點的線 性鍊錶的基本操作。bo2 8.cpp 不帶頭結點的單鏈表 儲存結構由c2 2.h定義 的部分基本操作 9個 define destroylist c...