連結串列相關知識整理
阿新 • • 發佈:2018-12-13
標語:如果懼怕前面跌宕的山岩,生命永遠只能是死水一潭
連結串列
定義:連結串列是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過連結串列中的指標連結次序實現的。
比較:
- 陣列
- 連結串列
如何建立連結串列
- 頭插法
將元素插入連結串列頭的後面 - 尾插法
將元素順序插入連結串列當中
如何逆序一個連結串列
-
非遞迴
需要三個輔助變數前驅(pre),當前節點(p),後繼節點(next) -
遞迴
遞迴到最後返回的時候,p->next->next = p;實現單次逆序,然後回溯最終整個連結串列逆序成功 -
頭插
基本操作
- 插入
- 刪除
拓展
- 刪除重複元素
- 建立hash表,時間複雜度
- 暴力迴圈查詢重複元素 ,時間複雜度
- Farey序列相關知識
- 定義:選取一個正整數n。把所有分母不超過n的最簡分數找出來,從小到大排序。這個分數序列就叫做Farey序列。
- 定理:在Farey序列中,對於任意兩個相鄰分數,先算出前者的分母乘以後者的分子,再算出前者的分子乘以後者的分母,則這兩個乘積一定正好相差1!
- 雙向連結串列的建立
對於每個節點增加前驅指標即可 - 迴圈連結串列的建立
最後一個元素指向第一個元素即可