單向鍊錶的操作

2021-05-23 21:15:36 字數 432 閱讀 5276

1.單向鍊錶的建立

鍊錶建立後,其實,此時我們只可以知道head,而後通過head訪問每乙個節點成員。這是比較簡單的鍊錶,其中沒有其它的資訊了。

如果需要建立有環的鍊錶,則將尾節點的next指標指向中間乙個節點即可。首先找到尾節點,而後將尾部節點的next指向中間乙個節點即可。

如何判斷乙個鍊錶是否存在環呢?

用兩個指標,開始時兩個指標出發點相同。指標p1和p2前進的步伐不同,乙個每次前進一步,乙個每次前進二步,如果經過若干步後,兩個指標重合,則存在相交。

2.兩個單向鍊錶相交的判斷

如果兩個單向鍊錶相交,則會出現一種情況,即從某個節點開始,兩個鍊錶的節點是一樣的了。因此,我們有以下幾種方式可以解決。

1)分別遍歷每乙個單向鍊錶,如果兩個鍊錶的尾節點是一樣的,則相交。

2)將第乙個鍊錶的尾節點指向第二個鍊錶的頭節點,如果

單向鍊錶操作

今天花了一天時間把單向鍊錶的建立,增加,刪除,修改,查詢,遍歷等問題用c 實現了一遍,把以前好多模糊的地方,終於弄清楚了。現在把這些內容記錄下來。1.建立單向鍊錶結點 我們通常用乙個結構體表示鍊錶結點,如下 struct listnode 2.插入新結點 bool insertlistnode li...

單向鍊錶的操作

include using namespace std typedef char elemtype 定義char型別的elemtype,方便修改 typedef struct lnode 定義乙個結構體 linklist void initlist linklist l void createlis...

單向鍊錶的操作

has head list.h ifndef has head list h define has head list h define crt secure no warnings include include include define debug format,do while 0 def...