# 簡介 ## 資料結構與演算法的關係 1. 資料結構是一門研究組織數據方式的學科,有了程式語言也就有了資料結構,學好資料結構可以寫出更漂亮更有效率的代碼。 2. 資料結構是演算法的基礎。 3. 程序 = 資料結構+演算法 資料結構包括:**線性結構**和**非線性結構**。 ## 線性結構 - 線性結構作為最常用的資料結構,其特點是數據元素之間存在一對一的線性關係。 - 線性結構有兩種不同的存儲結構,即 **順序存儲結構** 和 **鏈式存儲結構**(Chained Storage Structure)。 - 順序存儲的線性表稱為**順序表**,順序表中的存儲元素是**連續**的; - 鏈式存儲的線性表稱為**連結串列**,鏈表中的存儲元素**不一定是連續**的,元素節點中存放資料元素以及相鄰元素的位址資訊。 - 線性結構常見的有:**陣列(Array)、佇列(Queue)、連結串列(Linked list)和棧(Stack)** ## 非線性結構 - 非線性結構包括:二維陣列,多維陣列,廣義表(Generalized List),樹結構,圖結構。