鍊錶 單鏈表 一

2021-07-23 18:04:32 字數 901 閱讀 9284

一. 

帶頭節點的單鏈表與不帶頭節點的單鏈表的比較(下面以插入演算法為例)

1.帶頭節點

templatevoid linklist::insert(int i,t x)

if(p == null)

throw "位置非法";

else

}

2. 不帶頭節點

templatevoid linklist::insert(int i,t x)

else

if(p == null)

throw "位置非法";

else

} }

不帶頭節點雖然可以實現演算法,但演算法冗長,而且需要考慮在表頭的特殊情況

二、建立單鏈表

1. 頭插法

template linklist::linklist(t a,int n)

}

2. 尾插法

template linklist::linklist(t a,int n)

r->next = null;

}

三、判斷單鏈表是否遞增演算法

template int increase(node* first)

return 1;

}

四、單鏈表逆置演算法reverse

即修改每個節點的指標域,把指向後繼節點的指標改為指向前驅節點

template int reverse(node* first)

first->next = pre;

}

鍊錶 單鏈表翻轉

看到好多部落格裡面寫鍊錶翻轉時候就是 要麼一樣,要麼沒有注釋。咱最近閒人一枚,準備好好寫寫code給大家分享一下自己的思想.使用前插法 1 2 3 4 null 我把1標記為prev,把2標記temp,把3標記next 使得最後順序輸出 4 3 2 1 null 定義linklist型別的prev ...

鍊錶 單鏈表的建立

建立乙個節點 struct student 注意 當有新的節點要新增到鍊錶中時,原來最後乙個節點的指標將儲存新新增的節點位址,而新的節點的指標將指向空 null 當新增完成後,新節點將成為鍊錶的最後乙個節點。實際上是尾插法建立鍊錶 例 動態建立乙個鍊錶 步驟分析 1 初始化乙個頭節點,即定義乙個頭指...

鍊錶 單鏈表的拆分

資料結構實驗之鍊表五 單鏈表的拆分 time limit 1000 ms memory limit 65536 kib problem description 輸入n個整數順序建立乙個單鏈表,將該單鏈表拆分成兩個子鍊錶,第乙個子鍊錶存放了所有的偶數,第二個子鍊錶存放了所有的奇數。兩個子煉表中資料的相...