程序結(jié)構(gòu) = 數(shù)據(jù)結(jié)構(gòu) + 算法
一.數(shù)據(jù)結(jié)構(gòu)緒論
1.1.數(shù)據(jù)結(jié)構(gòu)作用
數(shù)據(jù)結(jié)構(gòu)是一門關(guān)于非數(shù)值計算的程序設(shè)計問題的操作對象,以及它們之間的關(guān)系和操作等相關(guān)問題的學科
1.2基本概念和術(shù)語
1.21數(shù)據(jù)
數(shù)據(jù):是描述客觀事物的符號,是計算機中可以操作的對象,是能別計算機識別,并輸入給計算機處理的符號集合
數(shù)據(jù)不僅包括整型,實型等數(shù)據(jù)類型,還包括字符及聲音,圖像,視頻等非數(shù)值類型
這里說的數(shù)據(jù),就是符號,符號必須具備兩個前提:
- 可以輸入到計算機中
- 能被計算機程序處理
對于整型,實例等數(shù)據(jù)類型,可以進行數(shù)值計算
對于字符數(shù)據(jù)類型,就需要進行非數(shù)值的處理.聲音,圖像,視頻其實可以通過編碼的手段進行字符數(shù)據(jù)來處理
1.22數(shù)據(jù)元素
數(shù)據(jù)元素:組成數(shù)據(jù)的,有一定意義的基本單位,在計算句中通常作為整體處理.也被稱為記錄
例子:人類:數(shù)據(jù)元素:你我他
1.23數(shù)據(jù)項
數(shù)據(jù)項:一個數(shù)據(jù)元素可以由若干個數(shù)據(jù)項組成
比如我整個數(shù)據(jù)元素:由眼,耳,鼻,手,等數(shù)據(jù)項組成,也可以有年齡,性別,出生年月日組成
數(shù)據(jù)項是數(shù)據(jù)不可分割的最小單位
1.24數(shù)據(jù)對象
數(shù)據(jù)對象:性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的子集
性質(zhì)相同:指數(shù)據(jù)元素具有相同的數(shù)量和類型的數(shù)據(jù)項,比如:人有姓名,生日,性別等相同的數(shù)據(jù)項
數(shù)據(jù)對象是數(shù)據(jù)的子集
1.25數(shù)據(jù)結(jié)構(gòu)
結(jié)構(gòu)就是關(guān)系.比如分子結(jié)構(gòu),就是組成分子的原子之間的排列方式
不同數(shù)據(jù)元素之間不是獨立存在的,而是存在特定的關(guān)系,我們將這些關(guān)系成為結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu):是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合
在計算機中,數(shù)據(jù)元素不是孤立,雜亂無序的,而是具有內(nèi)在聯(lián)系的數(shù)據(jù)集合.數(shù)據(jù)元素之間存在一種或多種特定關(guān)系,也就是數(shù)據(jù)的組織形式
1.3邏輯結(jié)構(gòu)與物理結(jié)構(gòu)
1.31邏輯結(jié)構(gòu)
邏輯結(jié)構(gòu):是指數(shù)據(jù)對象中數(shù)據(jù)元素之間的相互關(guān)系
-
集合結(jié)構(gòu)
集合結(jié)構(gòu):集合結(jié)構(gòu)的數(shù)據(jù)元素除了同屬于一個集合外,它們好自己沒有其他的關(guān)系.數(shù)據(jù)元素之間是"平等的",共同屬性是:"同鼠疫一個集合"

-
線性結(jié)構(gòu)
線性結(jié)構(gòu):線性結(jié)構(gòu)中的數(shù)據(jù)元素之間是一對一的關(guān)系

-
樹形結(jié)構(gòu)
樹形結(jié)構(gòu):樹形結(jié)構(gòu)中的數(shù)據(jù)元素之間存在一種一對多的層次關(guān)系

-
圖形結(jié)構(gòu)
圖形結(jié)構(gòu):圖形結(jié)構(gòu)的數(shù)據(jù)元素是多對多的關(guān)系

用示意圖表示數(shù)據(jù)的邏輯結(jié)構(gòu)時
- 將每一個數(shù)據(jù)元素看成一個結(jié)點,用圓圈表示
- 元素之間的邏輯關(guān)系用結(jié)點之間的連線表示,如果這個關(guān)系是有方向的,那么用帶箭頭的連線表示
1.4物理結(jié)構(gòu)
1.物理結(jié)構(gòu):是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存儲結(jié)構(gòu)
數(shù)據(jù)是數(shù)據(jù)元素的集合,所以物理結(jié)構(gòu)的定義,就是如何把數(shù)據(jù)元素存儲到計算機的存儲器中.存儲器主要是針對內(nèi)存而言的,像硬盤,軟盤,光盤等外部存儲器的數(shù)據(jù)組織通常用文件結(jié)構(gòu)來描述
數(shù)據(jù)的存儲結(jié)構(gòu)正確反映數(shù)據(jù)元素之間的邏輯關(guān)系.
數(shù)據(jù)元素的存儲結(jié)構(gòu)形式有兩種:順序結(jié)構(gòu),和鏈式結(jié)構(gòu)
-
1.順序存儲結(jié)構(gòu)
順序存儲結(jié)構(gòu):是把數(shù)據(jù)元素存放在 地址連續(xù)的存儲單元里,其數(shù)據(jù)間的邏輯關(guān)系和吳磊關(guān)系是一致的

-
2.鏈式存儲結(jié)構(gòu)
面對時常發(fā)生變化的結(jié)構(gòu),順序存儲是不可以的,那就需要鏈式存儲結(jié)構(gòu)
鏈式存儲結(jié)構(gòu):是吧數(shù)據(jù)元素存放在任意的存儲單元里,這組存儲單元可以是連續(xù)的,也可以是不連續(xù)的. 數(shù)據(jù)元素的存儲關(guān)系并不能反映其邏輯關(guān)系,所有需要用一個指針存放數(shù)據(jù)元素的地址,這樣通過地址就可以找到相關(guān)數(shù)據(jù)元素的位置

鏈式存儲的前一個元素存放后一個元素的地址
總結(jié):

