1. 程式人生 > >連結串列相關知識整理

連結串列相關知識整理

標語:如果懼怕前面跌宕的山岩,生命永遠只能是死水一潭

連結串列

定義:連結串列是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過連結串列中的指標連結次序實現的。
比較:

  • 陣列
    在這裡插入圖片描述
  • 連結串列

在這裡插入圖片描述

如何建立連結串列

  • 頭插法
    將元素插入連結串列頭的後面
  • 尾插法
    將元素順序插入連結串列當中

如何逆序一個連結串列

  • 非遞迴
    需要三個輔助變數前驅(pre),當前節點(p),後繼節點(next)

  • 遞迴
    遞迴到最後返回的時候,p->next->next = p;實現單次逆序,然後回溯最終整個連結串列逆序成功

  • 頭插

基本操作

  • 插入
  • 刪除

拓展

  • 刪除重複元素
    1. 建立hash表,時間複雜度 O n O(n)
    2. 暴力迴圈查詢重複元素 ,時間複雜度 O n 2
      O(n^2)
  • Farey序列相關知識
  1. 定義:選取一個正整數n。把所有分母不超過n的最簡分數找出來,從小到大排序。這個分數序列就叫做Farey序列。
  2. 定理:在Farey序列中,對於任意兩個相鄰分數,先算出前者的分母乘以後者的分子,再算出前者的分子乘以後者的分母,則這兩個乘積一定正好相差1!
  • 雙向連結串列的建立
    對於每個節點增加前驅指標即可
  • 迴圈連結串列的建立
    最後一個元素指向第一個元素即可