·數據結構是一門研究非數值計算的程序設計問題中計算機操做對象以及它們之間的關係和操做等的學科。算法
一、四個定義:數據結構
·數據data:對客觀事物的符號表示,是計算機科學中全部能輸入到計算機中並被計算機程序處理的符號的總稱。atom
·數據元素data element:是數據的基本單位,一般做爲總體進行考慮,一個數據元素能有若干個數據項組成。數據項是數據的不可分割的最小單位。spa
·數據對象data object:性質相同數據元素的集合,是數據的一個子集。設計
·數據結構data structure:是相互之間存在一種或多種特定關係的數據元素的集合。指針
二、根據數據元素之間關係的不一樣特性可將結構分爲四類基本結構:集合、線性結構、樹形結構、圖狀結構或網狀結構。對象
三、數據結構的形式定義:Data_Structure = (D,S) //D爲數據元素的有限集,S爲D上關係的有限集。element
eg:Complex = (C,R) 其中 C={c1,c2};R={P},而P是定義在集合C上的一種關係{<c1,c2>},有序偶<c1,c2>表示c1是複數的實部,c2是複數的虛部。數學
·結構定義爲數據元素之間的關係,而這裏的關係描述的是數據元素之間的邏輯關係,所以也稱爲數據的邏輯結構。it
·數據結構在計算機中的表示(又稱爲映像)成爲數據的物理結構或存儲結構。包括數據元素的表示和關係的表示。
·數據元素的關係在計算機中有兩種不一樣的表示方法:順序映像和非順序映像,並獲得兩種不一樣的存儲結構:順序存儲結構和鏈式存儲結構。
·順序映像:藉助元素在存儲器中的相對位置來表示數據元素之間的邏輯關係。
·非順序映像:藉助指示元素存儲地址的指針表示數據元素之間的邏輯關係。
四、數據類型:是一個值的集合和定義在這個值集上的一組操做的總稱。
按值的不一樣特性,高級語言中的數據類型可分爲兩類:
·非結構的原子類型atomic data type: 值不可分解.。
·結構類型: 結構類型的值能夠分解。
·抽象數據類型:一個數學模型以及定義在該模型上的一組操做。
·多型數據類型:其值的成分不肯定的數據類型。
一、算法定義:對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個或多個操做。
二、算法五個特性:有窮性、肯定性、可行性、輸入(0個或多個輸入)、輸出(1個或多個輸出)。
三、算法設計的要求:正確性、可讀性、健壯性、效率與低存儲量需求。
四、算法效率的度量:
·對於同一個算法,實現的語言級別越高,執行效率就越低。
·一個算法是由控制結構(順序、分支、循環3種)和原操做(指固有數據類型的操做)構成的。
·漸進時間複雜度asymptotic time complexity: T(n) = O( f(n) )
·空間複雜度 space compexity: S(n) = O( f(n) )