作為計算機專業的人,如果出去跟別人說自己不懂資料結構,那就是天大的笑話了,資料結構+演算法=程式設計,這是計算機屆公認的理論了,無論我們在做專案時,還是參加各種比賽,乃至於我們參加工作招聘,資料結構都是至關重要的,有時你甚至可以不懂計算機語言,但是不能不懂資料結構,通過上次的華為面試,我發現自己在資料結構方面知識很是欠缺,於是決定全面複習一下資料結構,為了給自己的複習留下足跡,所以決定在部落格上面做些記錄,希望能夠提高自己的學習效率。
資料結構,即data structure,是相互之間存在一種或多種特定關係的資料元素的集合,所謂的結構就是資料之間的相互關係,學習資料結構,我們要先明確幾個有關的基本概念,如下:
資料:指客觀事物的符號表示,是能輸入計算機並被電腦程式處理的符號的總稱。
資料元素:是資料的基本單位,通常作為乙個整體進行考慮和處理。
資料項:資料元素有時可以劃分為多個資料項,資料項是資料的最小單位,不可分割。
資料物件:性質相同的一組資料的集合。
資料結構一般可以分為以下四類:
線性結構:資料元素之間存在一對一的關係。
樹形結構:資料元素之間存在一對多的關係。
圖狀結構:資料元素之間存在多對多的關係。
集合:資料元素之間除了同屬於同一集合之外不存在別的相互關係。
根據資料結構的定義,我們通常用乙個二元組來表示,即ds=(d,s);d表示資料,s表示資料之間的相互關係。
資料結構通常具有兩種表示方式,一種是邏輯結構,另一種是物理結構,或稱為儲存結構,前者是資料結構的抽象描述,後者是資料結構在計算機中的儲存表示,
資料結構的儲存結構通常分為鏈式儲存,順序儲存,雜湊儲存和索引儲存,鏈式儲存即通過標識元素儲存位置的指標來表示元素之間的相互關係,順序結構即通過資料元素在計算機中的相對儲存位置來描述資料元素之間的關係,雜湊儲存方式為通過節點的關鍵字直接計算出節點的儲存位址,索引儲存結構則是通過索引表記錄資料的儲存位置,並間接表示資料的相互關係。
資料型別:乙個值集和定義在該值集上的一組操作的集合。
抽象資料型別:解決現實問題通常需要將現實物件抽象為乙個數學模型,乙個數學模型和定義在該數學模型上的一組操作的集合稱為抽象資料型別。
資料型別可以分為原子型別和結構型別,結構型別又可以分為固定聚合型別和可變聚合型別。
與資料結構關係最為密切的就是演算法了,這裡提一下演算法的五個特性:
有窮性,即演算法將在有限的時間和空間內執行結束。
確定性,即演算法的每一步操作都必須具有明確的意義,不可出現二義性語句。
可行性,即演算法的每一條語句都必須能夠在當前計算機系統中得到有效的執行。
輸入,即演算法要有乙個或多個輸入。
輸出,即演算法要有乙個或多個輸出。
衡量演算法優劣的標準通常有以下幾個:正確性,可讀性,健壯性,效率和低儲存量需求。
演算法的時間度量通常有事後統計法和事前分析估算法,前者需要耗費大量的時間和精力,而且容易是程式陷入茫然狀態,即你無法判斷程式是否執行出現錯誤,比如死迴圈,對於後者,通常採用大o表示法,即使用語句的最高頻度來表示演算法的執行時間,間接估算演算法的時間需求。
演算法的空間度量通常用變數空間,程式空間和輔助變數空間的總和來表示,在變數空間或程式空間為常量值時,可以忽略,當程式執行過程中其執行空間不變時,我們稱之為原地執行。
資料結構的基本概念知識大概就這麼多了,由於個人憑記憶書寫,所以有所紕漏或則錯誤歡迎指出,在此表示感謝。
資料結構 概念總結
data structures algorithms programs 資料結構是計算機儲存 組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合 集合結構,線性結構,樹形結構,圖結構。順序儲存結構和鏈式儲存結構.資料結構在計算機專業課程體系中起到承上啟下的作業,熟練使用資料結...
資料結構概念總結
基本概念 資料 能被輸入到計算機中,且能被計算機處理的符號的集合 資料元素 資料集合中的乙個個體。資料項 資料的不可分割的最小單位。資料型別 在一種程式語言中,變數所具有的資料種類。邏輯結構 資料之間的相互關係。儲存結構 資料在計算機中的表示。演算法五個特性 有窮性 確定性 可行性 輸入 輸出。演算...
資料結構與演算法分析 基本理論概念總結
基本概念 資料 資訊的載體,是所有能夠被計算機識別 儲存 加工處理的符號的總稱。可以是數值資料,如整數 實數 複數等 也可以是非數值資料,如字元 文字 圖形 音訊 影象 語音等。資料項 組成資料的不可分割的最小單位,如學生成績表中的 學號 姓名 等。資料項具有一定的型別,其取值依據其型別而定。資料元...