用計算機求解任何問題都離不開程式設計,程式設計的實質是資料表示(資料要能被計算機處理,首先必須能夠儲存在計算機的記憶體中,這項任務稱為資料表示,其核心是資料結構)和資料處理(乙個實際問題的求解必須滿足各項處理要求,這項任務稱為資料處理,其核心是演算法)。資料結構課程主要討論資料表示和資料處理的基本方法。
1.1
資料結構在程式設計中的作用
(1)程式設計的一般過程:
①分析問題,抽象出具體的資料模型(待處理的資料以及資料之間的關係,即資料結構),形成問題求解的基本思路。
②資料表示和資料處理(具體的操作步驟,將問題求解的基本思路形成演算法)。③
用程式語言編寫程式(將演算法的操作步驟轉換為程式語言)。
附:資料結構+演算法=程式;資料結構和演算法是構成程式的兩個最重要的部分。
1.2
本書討論的主要內容
(1)計算機能夠求解的問題①
數值問題 (數值問題抽象出來的資料模型通常是數學方程);
②非數值問題 (非數值問題抽象出的資料模型通常是線性表,樹,圖等資料結構)。
(2)
非數值問題的資料組織和處理
①
資料的邏輯結構:線性表,樹,圖等資料結構,其核心是如何組織待處理的資料以及資料之間的關係。
②資料的儲存結構:如何將線性表,樹,圖等資料結構儲存到計算機的儲存器中,其核心是如何有效的儲存資料以及資料之間的邏輯關係。
③演算法:如何基於資料的某種儲存結構實現插入,刪除,查詢等基本操作,其核心是如何有效的處理資料。
④常用資料處理技術:包括查詢技術,排序技術,索引技術等。
1.3
資料結構的基本概念
1.3.1
資料結構
(1)資料是資訊的載體;資料分為數值型資料(整數和實數等)和非數值型資料。
(2)資料元素是資料的基本單位。
(3)資料項:構成資料元素的不可分割的最小單位。
(4)資料結構是指相互之間存在一定關係的資料元素的集合。
(5)資料的邏輯結構是指資料元素之間邏輯關係的整體。
(6)資料結構的型別:
①集合:資料元素之間就是「屬於乙個集合」,除此之外,沒有任何關係。
②線性結構:資料元素之間存在著一對一的線性關係。
③樹結構:資料元素之間存在著一對多的層次關係。
④圖結構:資料元素之間存在著多對多的任意關係。
樹結構和圖結構也稱為非線性結構。
(7)資料的邏輯結構常用邏輯關係圖來描述,其描述方法是:將每乙個資料元素看做乙個結點,用圓圈表示,元素之間的邏輯關係用節點之間的直線表示,如果強調關係的方向性,則用帶箭頭的連線表示關係(第乙個節點是第二個節點的前區,第二個節點是第乙個節點的後繼,第乙個節點無前區,最後乙個節點無後繼)。
(8)資料的儲存結構又稱物理結構,是資料及其邏輯結構在計算機中的表示。(通常有兩種儲存結構:順序儲存結構和鏈結儲存結構)。
(9)順序儲存結構的基本思想是:用一組連續的儲存單元依次儲存資料元素,資料元素之間的邏輯關係由元素的儲存位置來表示。
(10)
連線儲存結構的基本思想是:用一組任意的儲存單元儲存資料元素,資料元素之間的邏輯關係用指標來表示。
(11)
資料的邏輯結構是從具體問題抽象出來的資料模型,是面向問題的,反映了資料元素之間的關聯方式和鄰接關係。
(12)
資料的儲存結構是面向計算機的,其基本目標是將資料及其邏輯關係儲存到計算機的記憶體中。
1.3.2
抽象資料型別
(1)資料型別是一組值的集合以及定義於這個值集上的一組操作的總稱。
(2)抽象:抽出問題的本質特徵而忽略非本質的細節,是對具體事物的乙個概括。
(3)抽象資料型別是乙個資料結構以及定義在該結構上的一組操作的總稱。
1.4
演算法及演算法分析
(1)演算法是對特定問題求解步驟的一種描述,是指令的有限序列。
(2)演算法必須滿足的五個重要特性:
輸入:乙個演算法有零個或多個輸入,這些輸入通常取自於某個特定的物件集合;輸出:乙個演算法有乙個或多個輸出,通常輸出與輸入之間有著某種特定的關係;有窮性:乙個演算法必須總是(對任何合法的輸入)在執行有窮步之後結束,且每一步都在有窮時間內完成;確定性:演算法中的每一條指令都必須有確切的含義,不存在二義性。並且,在任何條件下,對於相同的輸入只能得到相同的輸出;可行性:演算法描述的操作可以通過已經實現的基本操作執行有限次來實現。
(3)「好」演算法的特性「:正確性,魯棒性(也稱健壯性),簡單性,抽象分級,高效性。
(4)
演算法的描述方法
①
自然語言
②流程圖
③程式語言
④偽**
1.4.2
演算法分析
(1 )度量演算法效率的方法
①事後統計:先將演算法實現,然後輸入適當的資料執行,測算其時間和空間開銷;其
缺點如下:編寫程式實現演算法將花費較多的時間和精力;所得實驗結果依賴於計算機的軟硬體等環境因素,有時容易掩蓋演算法本身的優劣。
②事前分析:漸進複雜度,它是對演算法所消耗資源的一種估算方法。
(2)問題規模:是指輸入量的多少,一般來說,它可以從問題描述中得到。
(3)基本語句:執行次數與整個演算法的執行次數成正比的語句。它是對演算法執行時間的貢獻最大,是演算法中最重要的操作。
附註:好演算法是反覆努力和重新修正的結果
資料結構第一章緒論
緒論主要是對計算機資料結構一書有大致了解,系統的講解資料結構在程式結構的應用,資料結構的相關概念,演算法在程式中的應用,從而從巨集觀上了解資料結構,更有利於以後學習。1 資料結構在程式中的應用 其實乙個公式就可以了解程式和演算法還有資料,即資料結構 演算法 程式,由公式可知資料結構是程式的一部分。2...
資料結構 第一章 緒論
用計算機求解任何問題都離不開程式設計,程式設計的實質是資料表示和資料處理。一,資料結構基本概念 1.資料是資訊的載體,是電腦程式處理的原料。可以將資料分為兩大類 一類是整數實數等數值資料,一類是文字,影象聲音,圖形等非數值資料。資料元素是資料的基本單位,在電腦程式中通常作為乙個整體進行考慮和處理。構...
資料結構 第一章 緒論
程式設計的實質是資料表示和資料處理。資料要能被計算機處理,首先必須能夠儲存在計算機的記憶體中,這項任務稱為資料表示,其核心是資料結構 乙個實際問題的求解必須滿足各項處理要求,這項任務稱為資料處理,其核心是演算法。資料結構課程主要是討論資料表示和資料處理的基本方法。1.1 1.2 1 資料的邏輯結構 ...