數(shù)據(jù)(Data)是信息的載體凶伙,它能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理苍匆。它是計(jì)算機(jī)程序加工的原料刘急,應(yīng)用程序處理各種各樣的數(shù)據(jù)。計(jì)算機(jī)科學(xué)中浸踩,所謂數(shù)據(jù)就是計(jì)算機(jī)加工處理的對(duì)象叔汁,它可以是數(shù)值數(shù)據(jù),也可以是非數(shù)值數(shù)據(jù)检碗。數(shù)值數(shù)據(jù)是一些整數(shù)据块、實(shí)數(shù)或復(fù)數(shù),主要用于工程計(jì)算折剃、科學(xué)計(jì)算和商務(wù)處理等另假;非數(shù)值數(shù)據(jù)包括字符、文字怕犁、圖形边篮、圖像己莺、語(yǔ)音等。
數(shù)據(jù)元素(Data Element)是數(shù)據(jù)的基本單位戈轿。在不同的條件下凌受,數(shù)據(jù)元素又可稱(chēng)為元素、結(jié)點(diǎn)思杯、頂點(diǎn)胁艰、記錄等。例如智蝠,學(xué)生信息檢索系統(tǒng)中學(xué)生信息表中的一個(gè)記錄腾么、八皇后問(wèn)題中狀態(tài)樹(shù)的一個(gè)狀態(tài)、教學(xué)計(jì)劃編排問(wèn)題中的一個(gè)頂點(diǎn)等杈湾,都被稱(chēng)為一個(gè)數(shù)據(jù)元素解虱。有時(shí),一個(gè)數(shù)據(jù)元素可由若干個(gè)數(shù)據(jù)項(xiàng)(Data Item)組成漆撞,例如殴泰,學(xué)籍管理系統(tǒng)中學(xué)生信息表的每一個(gè)數(shù)據(jù)元素就是一個(gè)學(xué)生記錄。它包括學(xué)生的學(xué)號(hào)浮驳、姓名悍汛、性別、籍貫至会、出生年月离咐、成績(jī)等數(shù)據(jù)項(xiàng)。
這些數(shù)據(jù)項(xiàng)可以分為兩種:一種叫做初等項(xiàng)奉件,如學(xué)生的性別宵蛀、籍貫等,這些數(shù)據(jù)項(xiàng)是在數(shù)據(jù)處理時(shí)不能再分割的最小單位县貌;另一種叫做組合項(xiàng)术陶,如學(xué)生的成績(jī),它可以再劃分為數(shù)學(xué)煤痕、物理梧宫、化學(xué)等更小的項(xiàng)。通常摆碉,在解決實(shí)際應(yīng)用問(wèn)題時(shí)是把每個(gè)學(xué)生記錄當(dāng)作一個(gè)基本單位進(jìn)行訪(fǎng)問(wèn)和處理的塘匣。
數(shù)據(jù)對(duì)象(Data Object)或數(shù)據(jù)元素類(lèi)(Data Element Class)是具有相同性質(zhì)的數(shù)據(jù)元素的集合。在某個(gè)具體問(wèn)題中兆解,數(shù)據(jù)元素都具有相同的性質(zhì)(元素值不一定相等)馆铁,屬于同一數(shù)據(jù)對(duì)象(數(shù)據(jù)元素類(lèi)),數(shù)據(jù)元素是數(shù)據(jù)元素類(lèi)的一個(gè)實(shí)例锅睛。例如埠巨,在交通咨詢(xún)系統(tǒng)的交通網(wǎng)中历谍,所有的頂點(diǎn)是一個(gè)數(shù)據(jù)元素類(lèi),頂點(diǎn)A 和頂點(diǎn)B 各自代表一個(gè)城市辣垒,是該數(shù)據(jù)元素類(lèi)中的兩個(gè)實(shí)例望侈,其數(shù)據(jù)元素的值分別為A 和B。
數(shù)據(jù)結(jié)構(gòu)(Data Structure)是指互相之間存在著一種或多種關(guān)系的數(shù)據(jù)元素的集合勋桶。在任何問(wèn)題中脱衙,數(shù)據(jù)元素之間都不會(huì)是孤立的,在它們之間都存在著這樣或那樣的關(guān)系例驹,這種數(shù)據(jù)元素之間的關(guān)系稱(chēng)為結(jié)構(gòu)捐韩。根據(jù)數(shù)據(jù)元素間關(guān)系的不同特性,通常有下列四類(lèi)基本的結(jié)構(gòu):
集合結(jié)構(gòu)鹃锈。在集合結(jié)構(gòu)中荤胁,數(shù)據(jù)元素間的關(guān)系是“屬于同一個(gè)集合”。集合是元素 關(guān)系極為松散的一種結(jié)構(gòu)屎债。
線(xiàn)性結(jié)構(gòu)仅政。該結(jié)構(gòu)的數(shù)據(jù)元素之間存在著一對(duì)一的關(guān)系。
樹(shù)型結(jié)構(gòu)盆驹。該結(jié)構(gòu)的數(shù)據(jù)元素之間存在著一對(duì)多的關(guān)系圆丹。
圖形結(jié)構(gòu)。該結(jié)構(gòu)的數(shù)據(jù)元素之間存在著多對(duì)多的關(guān)系躯喇,圖形結(jié)構(gòu)也稱(chēng)作網(wǎng)狀結(jié)構(gòu)辫封。
圖1.4 為表示上述四類(lèi)基本結(jié)構(gòu)的示意圖。
由于集合是數(shù)據(jù)元素之間關(guān)系極為松散的一種結(jié)構(gòu)玖瘸,因此也可用其他結(jié)構(gòu)來(lái)表示它秸讹。從上面所介紹的數(shù)據(jù)結(jié)構(gòu)的概念中可以知道檀咙,一個(gè)數(shù)據(jù)結(jié)構(gòu)有兩個(gè)要素雅倒。一個(gè)是數(shù)據(jù)元素的集合,另一個(gè)是關(guān)系的集合蔑匣。在形式上,數(shù)據(jù)結(jié)構(gòu)通匙厮校可以采用一個(gè)二元組來(lái)表示裁良。數(shù)據(jù)結(jié)構(gòu)的形式定義為:數(shù)據(jù)結(jié)構(gòu)是一個(gè)二元組
Data_Structure =(D价脾,R)
其中,D 是數(shù)據(jù)元素的有限集笛匙,R 是D 上關(guān)系的有限集侨把。
數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的物理結(jié)構(gòu)犀变。數(shù)據(jù)的邏輯結(jié)構(gòu)可以看作是從具體問(wèn)題抽象出來(lái)的數(shù)學(xué)模型,它與數(shù)據(jù)的存儲(chǔ)無(wú)關(guān)秋柄。我們研究數(shù)據(jù)結(jié)構(gòu)的目的是為了在計(jì)算機(jī)中實(shí)現(xiàn)對(duì)它的操作获枝,為此還需要研究如何在計(jì)算機(jī)中表示一個(gè)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的標(biāo)識(shí)(又稱(chēng)映像)稱(chēng)為數(shù)據(jù)的物理結(jié)構(gòu)骇笔,或稱(chēng)存儲(chǔ)結(jié)構(gòu)省店。它所研究的是數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的實(shí)現(xiàn)方法,包括數(shù)據(jù)結(jié)構(gòu)中元素的表示及元素間關(guān)系的表示笨触。
數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
順序存儲(chǔ)
鏈?zhǔn)酱鎯?chǔ)
順序存儲(chǔ)方法是把邏輯上相鄰的元素存儲(chǔ)在物理位置相鄰的存儲(chǔ)單元中懦傍,由此得到的存儲(chǔ)表示稱(chēng)為順序存儲(chǔ)結(jié)構(gòu)。順序存儲(chǔ)結(jié)構(gòu)是一種最基本的存儲(chǔ)表示方法芦劣,通常借助于程序設(shè)計(jì)語(yǔ)言中的數(shù)組來(lái)實(shí)現(xiàn)谎脯。
鏈?zhǔn)酱鎯?chǔ)方法對(duì)邏輯上相鄰的元素不要求其物理位置相鄰,元素間的邏輯關(guān)系通過(guò)附設(shè)的指針字段來(lái)表示持寄,由此得到的存儲(chǔ)表示稱(chēng)為鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)源梭,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)通常借助于程序設(shè)計(jì)語(yǔ)言中的指針類(lèi)型來(lái)實(shí)現(xiàn)。
除了通常采用的順序存儲(chǔ)方法和鏈?zhǔn)酱鎯?chǔ)方法外稍味,有時(shí)為了查找的方便還采用索引存儲(chǔ)方法和散列存儲(chǔ)方法废麻。