上大學時學校開過一門課程就是數據結構,當時學的似懂非懂,不知道它的重要性,現在工作了,想撿起來,所以重新買了本書,重溫數據結構,我自己會記錄整個學習的過程,有興趣的同學可以一起。 今天剛看到基礎篇,也記錄下來,方便日後查看和再次回顧。 <一>你需要知道的一些名詞定義: 1.數據:數據是對客觀事物的符 ...
上大學時學校開過一門課程就是數據結構,當時學的似懂非懂,不知道它的重要性,現在工作了,想撿起來,所以重新買了本書,重溫數據結構,我自己會記錄整個學習的過程,有興趣的同學可以一起。
今天剛看到基礎篇,也記錄下來,方便日後查看和再次回顧。
<一>你需要知道的一些名詞定義:
1.數據:數據是對客觀事物的符號表示,數據元素是數據結構的基本單位,是電腦進行輸入輸出操作的基本單位。
2.數據結構:相互之間存在的一種或多種特定關係的數據元素的集合。可以用公式表示為:數據結構=數據元素+關係(結構)
3.四類基本的數據結構:
3.1 集合(Set)。結構中的數據元素除了存在"同屬於一個集合"的關係外,不存在任何其他關係。
3.2 線性結構(Linear Structure)。結構中的數據元素存在著一對一的關係。
3.3 樹形結構(Tree Structure)。結構中的數據元素存在著一對多的關係。
3.4 網狀結構(Graphic Structure)。該結構中的數據元素存在著多對多的關係。
4.數據元素兩種不同的表示方法:
4.1 順序存儲:順序存儲結構藉助元素在存儲器中的相對位置來表示數據元素之間的邏輯關係,數據元素存放在一片連續的存儲空間里,通常用數組來實現。
4.1 鏈式存儲:鏈式存儲結構藉助引用或指針來表示數據元素之間的邏輯關係,被存放的元素被隨機的存放在記憶體中再用指針將它們鏈接在一起。
5.程式=數據結構+演算法
6.演算法:演算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個或多個操作。
7.演算法的重要特征:
7.1 有限性。演算法必須在有限的步驟之後結束
7.2 確定性。演算法的每一步都是確定的定義,無二義性,在任何條件下,演算法只有唯一的一條執行路徑,對於相同的輸入只能得到相應的輸出。
7.3 輸入。一個演算法可接受零個或多個輸入
7.4 輸出。一個演算法有至少一個或多個輸出
7.5 有限性。演算法由可實現的基本指令完成
8.通常評估一個演算法可以從演算法執行的時間和演算法所占用記憶體空間兩方面來進行。