最近讀了清華大學鄧俊輝老師的數據結構,深感這些數據結構的精妙,在此做簡要總結,重點在於理清思路,不細寫演算法細節,感興趣的可直接查閱書籍。(鄧老師的這本書寫的真好,邏輯清晰,深入淺出,學堂在線還有公開課,強烈推薦。)
一:線性數據結構
1.最簡單的數據結構,就是數組了,理科生應該都懂。各元素依次存放於一段連續地址空間內,數據查找、修改僅需O(1)時間,但是對於數據插入、刪除,則需移動其後所有元素,需O(n)時間。
根據數據抽象性原則,我們可以將數組結構進行推廣,即得到向量。向量是由具有線性次序的元素構成的集合(並不限定各元素屬於同一基本類型),元素循秩訪問。我們定義其常用操作介面,無論採用何種實現方式,均可以方便地相互調用或集成,很好的體現了程序的封裝性。