基本概念
什么是數(shù)據(jù)嘹叫?
數(shù)據(jù)是信息的載體,是客觀描述事物屬性的數(shù)婆芦、字符及所有能輸入到計算機中并被計算機程序識別和處理的符號的集合喂饥。數(shù)據(jù)是計算機程序加工的原料。
數(shù)據(jù)元素、數(shù)據(jù)項
數(shù)據(jù)元素是數(shù)據(jù)的基本單位滩届,通常作為一個整體進行考慮和處理。
一個數(shù)據(jù)元素可由若干數(shù)據(jù)項組成棠枉,數(shù)據(jù)項是構(gòu)成數(shù)據(jù)元素的不可分割的最小單位泡挺。
數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)對象
結(jié)構(gòu)——各個元素之間的關(guān)系
數(shù)據(jù)結(jié)構(gòu)是互相之間存在一個或多種特定關(guān)系的數(shù)據(jù)元素的集合贱除。
數(shù)據(jù)對象是具有相同性質(zhì)的數(shù)據(jù)元素的集合媳溺,是一個數(shù)據(jù)的子集。
三要素
邏輯結(jié)構(gòu)
即扯躺,數(shù)據(jù)元素之間的邏輯關(guān)系是什么蝎困?
集合
各個數(shù)據(jù)元素同屬一個集合禾乘,別無其它關(guān)系
線性結(jié)構(gòu)
數(shù)據(jù)元素之間是一對一的關(guān)系盖袭,除了第一個元素彼宠,所有元素都有唯一前驅(qū)弟塞,除了最后一個元素,所有元素都有唯一后繼
樹形結(jié)構(gòu)
數(shù)據(jù)元素之間是一對多的關(guān)系
圖結(jié)構(gòu)
數(shù)據(jù)元素之間是多對多的關(guān)系
物理結(jié)構(gòu)
即摧冀,物理結(jié)構(gòu)索昂,如何用計算機表示數(shù)據(jù)元素的邏輯關(guān)系扩借?
順序存儲
把邏輯上相鄰的元素存儲在物理地址上也相鄰的存儲單元中,元素之間的關(guān)系由存儲單元的領(lǐng)接關(guān)系來體現(xiàn)康谆。
鏈式存儲
索引存儲
散列存儲
總結(jié)
- 若采用順序存儲,則各個數(shù)據(jù)元素在物理上必須是連續(xù)的何恶;若采用非順存儲,則各個數(shù)據(jù)元素在物理上是可以離散的
- 數(shù)據(jù)的存儲結(jié)構(gòu)會影響存儲空間的分配的方便程度
- 數(shù)據(jù)的存儲機構(gòu)會影響對數(shù)據(jù)運算的速度
數(shù)據(jù)的運算
施加在數(shù)據(jù)上的運算包括運算的定義和實現(xiàn)惜辑。運算的定義是針對邏輯結(jié)構(gòu)的疫赎,正對運算的功能;運算的實現(xiàn)是針對存儲結(jié)構(gòu)的撵彻,指的是運算實現(xiàn)的具體操作步驟实牡。
數(shù)據(jù)類型、抽象數(shù)據(jù)類型
數(shù)據(jù)類型
數(shù)據(jù)類型是一個值的集合和定義在此集合的一組操作的總稱创坞。
- 原子類型题涨,其值不可再分的數(shù)據(jù)類型
- 結(jié)構(gòu)類型总滩,其值可以再分解為若干成分(分量)的數(shù)據(jù)類型
抽象數(shù)據(jù)類型
Abstract Data Type (ADT)是抽象數(shù)據(jù)組織及與之相關(guān)的操作巡雨。
ADT 是用數(shù)學化的語言定義數(shù)據(jù)的邏輯結(jié)構(gòu)、定義運算冈涧。與其具體的實現(xiàn)無關(guān)(類似于定義類嗎正蛙?可能)
總結(jié)
在探討一種數(shù)據(jù)結(jié)構(gòu)時:
- 定義邏輯結(jié)構(gòu)(數(shù)據(jù)原元素之間的關(guān)系)
- 定義數(shù)據(jù)的運算(針對現(xiàn)實需求乒验,應(yīng)該對這種邏輯結(jié)構(gòu)進行什么樣的運算)
- 確定某種存儲結(jié)構(gòu),實現(xiàn)數(shù)據(jù)結(jié)構(gòu)锻全,并實現(xiàn)一些對數(shù)據(jù)結(jié)構(gòu)的基本運算