文章目錄
來自於慕課網上的教學課程《玩轉數據結構》筆記 https://coding.imooc.com/class/71.html,該視頻一共講解了十二個數據結構。包括:
- 數組
- 棧
- 隊列
- 鏈表
- 二分搜索樹
- 堆
- 線段樹
- Trie
- 並查集
- AVL
- 紅黑樹
- 哈希表
本課程不包含圖結構,因爲圖論領域以算法爲主。
面試常考的:前六個數據結構(要做到白板編程的水平)
面向競賽:7,8,9
最後三個:面試常考,但由於底層複雜,所以不會要求實現,但是必須把原理搞清。
線性結構包括:動態數組,普通隊列,棧,鏈表,哈希表,
樹形結構包括:
- 二分搜索樹,AVL樹,紅黑樹,這三個都是二叉樹,都是二分搜索樹
- 堆,線段樹
- Trie,並查集(兩個都是多叉樹)
總結
基本的數據結構包括:
數組vector或array, 鏈表list, BST(AVL,紅黑樹),哈希表,堆 (哈希表是一個底層的數據結構,使用紅黑樹對鏈地址法)
抽象(高級)的數據結構包括:
- 棧(由動態數組,鏈表實現)
- 普通隊列(由動態數組,鏈表實現)
- 優先隊列(底層是堆)
- 集合set和映射map(python中稱爲dict)(有序集合和有序映射底層是紅黑樹,無序集合和無序映射底層是哈希表)