第一章 緒論

前言:今天(2015年9月14日)去一家公司面試(仍是霸面)C/C++開發工程師,沒有通過系統地複習就一後果,被虐了。爲了下次面試,因此如今趁着有時間從新學下數據結構(C語言版,嚴蔚敏著)。在這記錄學習資料,通常都是書上寫的。面試

一、什麼是數據結構算法

1.1定義:數據結構是互相之間存在一種或多種特定關係的數據元素的集合。數組

1.2四種基本結構:集合結構,線性結構,樹形結構,圖狀結構(網狀)。(關係)數據結構

1.3數據結構的形式定義:數據結構是一個二元組, Data_Struct=(D,S),其中D是數據元素的有限集,S是D上關係的有限集。學習

1.4數據的邏輯結構:數據結構中定義中的關係描述的是數據元素之間的邏輯關係;分兩種:線性結構(線性表{是一種有限序列,如數組和鏈式等},棧LIFO{限定僅在表尾進行插        入或刪除操做的線性表},隊列FIFO)和非線性結構(樹,圖)spa

  數據的物理結構:數據結構在計算機的表示(映像)成爲數據的物理結構(存儲結構);分兩種:順序存儲結構,鏈式存儲結構,索引存儲,散列存儲。code

二、抽象數據類型ADT(Abstract Data Type)對象

2.1定義:是指一個數學模型及定義在該模型上的一組操做。定義僅取決於數據的邏輯特性。blog

2.2一個包含抽象數據類型的軟件模塊組成:定義,表示,實現三部分,三元組定義式以下:(D,S,P),其中D是數據對象,S是D上的關係集,P是對D的基本操做集。索引

  抽象數據類型的格式:  

1 ADT 抽象數據類型{
2     數據對象:<數據對象的定義>
3     數據關係:<數據關係的定義>
4     基本操做:<基本操做的定義>
5 }ADT 抽象數據類型名

  基本操做名格式

基本操做名(參數表)
    初始條件:描述
    操做結果:描述

三、算法及算法分析

3.1算法:有窮性,肯定性,可行性,輸入,輸出。

3.2算法效率的度量

  時間複雜度:T(n)=O(f(n))

  空間複雜度:S(N)=O(f(n))

相關文章
相關標籤/搜索