資料結構 緒論

2021-06-27 07:59:54 字數 3268 閱讀 1588

資料結構問題起源於程式設計

資料表示:

將資料儲存在計算機(記憶體)中

資料處理:

處理資料,設計方案(演算法)

計算機求解問題

:問題→抽象出問題的模型→求模型的解

問題——

數值問題、非數值問題

數 值 問 題→數學方程

非數值問題→資料結構

本書討論

非數值問題

的資料組織和處理,主要內容如下:(1

)資料的

邏輯結構

:線性表、樹、圖等資料結構,其核心是如何組織待處理的資料以及資料之間的關係;(2

)資料的

儲存結構

:如何將線性表、樹、圖等資料結構儲存到計算機的儲存器中,其核心是如何有效地儲存資料以及資料之間的邏輯關係;(3

)演算法:如何基於資料的某種儲存結構實現插入、刪除、查詢等基本操作,其核心是如何有效地處理資料;(4

)常用資料處理技術

:查詢技術、排序技術、索引技術等

資料:所有能

輸入到計算機中並能被電腦程式

識別和處理

的符號集合。

數值資料:整數、實數等

非數值資料:圖形、圖象、聲音、文字等

資料元素

:資料的

基本單位,在電腦程式中通常作為乙個

整體進行考慮和處理。

資料項:構成資料元素的不可分割的最小單位

資料元素是討論資料結構時涉及的最小資料單位,其中的資料項一般不予考慮。

資料結構

:相互之間存在一定關係的

資料元素

的集合。按照視點的不同,資料結構分為邏輯結構和儲存結構。

邏輯結構:指資料元素之間

邏輯關係

的整體。

資料的邏輯結構是從具體問題抽象出來的

資料模型

儲存結構:又稱為物理結構,是資料及其邏輯結構在

計算機中的表示。

資料結構從邏輯上分為四類:

⑴ 集合:資料元素之間就是

「屬於同乙個集合」 ;

⑵ 線性結構:資料元素之間

存在著一對一的線性關係;

⑶ 樹結構:資料元素之間存在

著一對多的層次關係;

⑷ 圖結構:資料元素之間存在

著多對多的任意關係。

兩種儲存結構: 1.

順序儲存結構

:用一組

連續的儲存單元

依次儲存資料元素,資料元素之間的邏輯關係由元素的

儲存位置

來表示。

2. 任意

的儲存單元儲存資料元素,資料元素之間的邏輯關係用指標來

表示 。

邏輯結構和儲存結構之間的關係

資料的邏輯結構屬於使用者檢視,是

面向問題

的,反映了資料內部的構成方式;資料的儲存結構屬於具體實現的檢視,是

面向計算機

的。抽象資料型別 .

資料型別

(data type

):一組

值的集合以及定義於這個值集上的一組

操作的總稱。

例如:c++

中的整型變數

2. 抽象

(abstract):

抽出問題本質的特徵而忽略非本質的細節。

例如: 地圖、駕駛汽車

3. 抽象資料型別

(abstract data type

,adt):

乙個資料結構

以及定義在該結構上的

一組操作

的總稱。演算法:

是對特定問題

求解步驟的一種描述,是指令的

有限序列

。演算法的五大特性: ⑴

輸入:乙個演算法有零個或多個輸入。

⑵ 輸出

:乙個演算法有乙個或多個輸出。

⑶ 有窮性

:乙個演算法必須總是在執行有窮步之後結束,且每一步都在有窮時間內完成。

⑷ 確定性

:演算法中的每一條指令必須有確切的含義,對於相同的輸入只能得到相同的輸出。

⑸ 可行性

:演算法描述的操作可以通過已經實現的基本操作執行有限次來實現。

演算法的描述方法

自然語言

優點:容易理解

缺點:冗長、二義性

使用方法:粗線條描述演算法思想

注意事項:避免寫成自然段

流程圖

優點:流程直觀

缺點:缺少嚴密性、靈活性

使用方法:描述簡單演算法

注意事項:注意抽象層次

程式語言

優點:能由計算機執行

缺點:抽象性差,對語言要求高

使用方法:演算法需要驗證

注意事項:將演算法寫成子函式

偽**偽**

:介於自然語言和程式語言之間的方法,它採用某一程式語言的基本語法,操作指令可以結合自然語言來設計。

優點:表達能力強,抽象性強,容易理解

演算法分析--

度量演算法效率的方法:

事後統計

:將演算法實現,測算其時間和空間開銷。

缺點:⑴ 編寫程式實現演算法將花費較多的時間和精力;

⑵ 所得實驗結果依賴於計算機的軟硬體等環境因素。

事前分析

:對演算法所消耗資源的一種估算方法。

演算法分析

:對演算法所需要的計算機資源

——時間和空間

進行估算。

時間複雜性 

空間複雜性

問題規模:

輸入量的多少。

基本語句:

是執行次數與整個演算法的執行次

數成正比的操作指令。

定理:若a(

n)=am

nm+a

m-1nm

-1+¼+

a1n+

a0是乙個m

次多項式,則a(

n)=o(

nm)。說明:在計算演算法時間複雜度時,可以忽略所有低次冪和最高次冪的係數。 ο

(1)<

(log2n

)<(n

)<(n

log2n)

<(n2

)<(n

3)<…

<(2n)

<(n!)

結論:如果問題規模相同,時間代價與輸入資料有關,則需要分析最好情況、最壞情況、平均情況。

最好情況:出現概率較大時分析

最差情況:實時系統

平均情況:已知輸入資料是如何分布的,

通常假設等概率分布

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

資料結構 緒論

程式 資料結構 演算法 資料 對客觀事物的符號表示。資料元素 資料的基本單位,由若干個資料項組成。資料項是資料不可分割的最小單位。資料物件 性質相同的資料元素的集合,使資料的乙個子集。資料元素是相互之間存在一種或多種特定關係的資料元素的集合。預定義常量型別 函式結果狀態嗎 define true 1...

資料結構緒論

資料結構是一種抽象資料的過程,這種能力是任何工具都無法代替的。學習資料結構的目的 資料結構是計算機專業的基礎,它為幾乎所有的軟體設計的基礎。同時他也培養求解複雜問題的能力。那麼,什麼是資料結構呢,這個概念是很重要的,人月神話上有一段話,說人們往往喜歡將問題分解開來處理,但是這樣一來造成了對整個問題的...