一、基本概念和術(shù)語
1.數(shù)據(jù)
數(shù)據(jù)是描述客觀事物的符號,是計算機可以操作的對象,是能被計算機識別,并輸入到計算機處理的符號集合。
(數(shù)據(jù)不僅僅包括整型、實型等數(shù)值型,還有字符、聲音、圖像、視頻等非數(shù)值類型)
2.數(shù)據(jù)元素
數(shù)據(jù)元素是組成數(shù)據(jù)的、有一定意義的基本單位,在計算機中通常作為整體處理,也稱為記錄(元組、結(jié)點、頂點)。
3.數(shù)據(jù)項(屬性、字段)
一個數(shù)據(jù)元素可以由若干個數(shù)據(jù)項組成。
數(shù)據(jù)項是數(shù)據(jù)不可分割的最小單位。
4.數(shù)據(jù)對象
數(shù)據(jù)對象是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的子集。
5.數(shù)據(jù)結(jié)構(gòu)
在現(xiàn)實世界中,不同數(shù)據(jù)元素之間不是獨立的,而是存在特定的關(guān)系,這些關(guān)系稱為結(jié)構(gòu)。
數(shù)據(jù)結(jié)構(gòu)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。
數(shù)據(jù)結(jié)構(gòu)包括三方面的內(nèi)容:邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和數(shù)據(jù)的運算。數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)是密不可分的兩個方面,一個算法的設(shè)計取決于所選定的邏輯結(jié)構(gòu),而算法的實現(xiàn)依賴于所采用的存儲結(jié)構(gòu)。
二、邏輯結(jié)構(gòu)和物理結(jié)構(gòu)(存儲結(jié)構(gòu))
1.邏輯結(jié)構(gòu)
1)定義
邏輯結(jié)構(gòu)是指數(shù)據(jù)對象中數(shù)據(jù)元素之間相互關(guān)系(邏輯關(guān)系),即從邏輯關(guān)系上描述數(shù)據(jù)。它與數(shù)據(jù)的存儲無關(guān),是獨立于計算機存儲器的。
2)分類(線性結(jié)構(gòu)和非線性結(jié)構(gòu))
根據(jù)數(shù)據(jù)元素之間關(guān)系的不同特征,通常有下列4類基本結(jié)構(gòu),復(fù)雜程度依次遞進。
①集合:結(jié)構(gòu)中的數(shù)據(jù)元素之間除了同屬于一個集合外,沒有其他的關(guān)系。
②線性結(jié)構(gòu):線性結(jié)構(gòu)中的數(shù)據(jù)元素之間是一對一的關(guān)系。
③樹形結(jié)構(gòu):樹形結(jié)構(gòu)中的數(shù)據(jù)元素之間是一對多的關(guān)系。
④圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu):結(jié)構(gòu)中的元素之間是多對多的關(guān)系。
2.物理結(jié)構(gòu)(存儲結(jié)構(gòu))
1)定義
數(shù)據(jù)的物理結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存儲方式。又稱存儲結(jié)構(gòu)。
它研究的是數(shù)據(jù)結(jié)構(gòu)在計算機中的實現(xiàn)方法,包括數(shù)據(jù)元素的表示和元素之間的關(guān)系。
數(shù)據(jù)元素的存儲結(jié)構(gòu)形式主要有兩種:順序存儲和鏈?zhǔn)酱鎯?/p>
2)順序存儲和鏈?zhǔn)酱鎯?/strong>
①順序存儲結(jié)構(gòu)
是利用數(shù)據(jù)元素在存儲器中的相對位置來表示數(shù)據(jù)元素之間的邏輯順序。
順序存儲結(jié)構(gòu)是把數(shù)據(jù)元素放在地址連續(xù)的存儲單元中,程序設(shè)計中使用數(shù)組類型來實現(xiàn)。(邏輯相鄰物理相鄰)
②鏈?zhǔn)酱鎯Y(jié)構(gòu)
利用結(jié)點中指針來表示數(shù)據(jù)元素之間的關(guān)系。
把數(shù)據(jù)元素存儲在任意的存儲單元里,這組存儲單元可以是連續(xù)的,也可以是連續(xù)的,程序設(shè)計中使用指針類型來實現(xiàn)。(邏輯相鄰物理不一定相鄰)
3)其他存儲方式
索引存儲:類似于目錄,以后可以聯(lián)系操作系統(tǒng)的文件系統(tǒng)章節(jié)來理解。
散列存儲:通過關(guān)鍵字直接計算出元素的物理地址。
三、抽象數(shù)據(jù)類型
定義
①數(shù)據(jù)類型:是指一組性質(zhì)相同的值的集合及定義在此集合上的一些操作的總稱。
例如:C語言中數(shù)據(jù)類型分為基本類型和構(gòu)造類型
基本類型:整型、浮點型、字符型等
構(gòu)造類型:數(shù)組、結(jié)構(gòu)、聯(lián)合、指針、枚舉型、自定義類型等
②抽象數(shù)據(jù)類型(abstract data type,ADT):是指一個數(shù)學(xué)模型及定義在該模型上的一組操作。
延伸閱讀:
四、線性表的鏈?zhǔn)奖硎竞蛯崿F(xiàn)
用一組任意的存儲單元(可能不連續(xù))存儲線性表的數(shù)據(jù)元素。
在鏈?zhǔn)酱鎯Y(jié)構(gòu)中,每個存儲結(jié)點不僅包含數(shù)據(jù)元素本身的信息,還必須包含每個元素之間邏輯關(guān)系的信息,即包含直接后繼結(jié)點的地址信息(指針域)。
邏輯順序與物理順序有可能不一致;屬順序存取的存儲結(jié)構(gòu),即存取每個元素必須從名列前茅個元素開始遍歷,直到找到需要訪問的元素,所以所花時間不一定相等。