資料結構詳細簡介

General 更新 2024年11月15日

  資料結構是指相互之間存在一種或多種特定關係的資料元素的集合,那麼你對資料結構瞭解多少呢?以下是由小編整理關於什麼是資料結構的內容,希望大家喜歡!

  資料結構的定義

  名詞定義

  資料結構是指相互之間存在著一種或多種關係的資料元素的集合和該集合中資料元素之間的關係組成。記為:

  Data_Structure=***D,R***

  其中D是資料元素的集合,R是該集合中所有元素之間的關係的有限集合。

  其它定義

  Sartaj Sahni在他的《資料結構、演算法與應用》一書中稱:“資料結構是資料物件,以及存在於該物件的例項和組成實 例的資料元素之間的各種聯絡。這些聯絡可以通過定義相關的函式來給出。”他將資料物件***data object***定義為“一個數據物件是例項或值的集合”。

  Clifford A.Shaffer在《資料結構與演算法分析》一書中的定義是:“資料結構是ADT***抽象資料型別Abstract Data Type*** 的物理實現。”

  Robert L.Kruse在《資料結構與程式設計》一書中,將一個數據結構的設計過程分成抽象層、資料結構層和實現層。其中,抽象層是指抽象資料型別層,它討論資料的邏輯結構及其運算,資料結構層和實現層討論一個數據結構的表示和在計算機內的儲存細節以及運算的實現。

  資料結構具體指同一類資料元素中,各元素之間的相互關係,包括三個組成成分,資料的邏輯結構,資料的儲存結構和資料運算結構。

  資料結構的研究內容

  在電腦科學中,資料結構是一門研究非數值計算的程式設計問題中計算機的操作物件***資料元素***以及它們之間的關係和運算等的學科,而且確保經過這些運算後所得到的新結構仍然是原來的結構型別。

  “資料結構”作為一門獨立的課程在國外是從1968年才開始設立的。 1968年美國唐納德·克努特***Donald Ervin Knuth***教授開創了資料結構的最初體系,他所著的《計算機程式設計藝術》第一卷《基本演算法》是第一本較系統地闡述資料的邏輯結構和儲存結構及其操作的著作。“資料結構”在電腦科學中是一門綜合性的專業基礎課,資料結構是介於數學、計算機硬體和計算機軟體三者之間的一門核心課程。資料結構這一門課的內容不僅是一般程式設計***特別是非數值性程式設計***的基礎,而且是設計和實現編譯程式、作業系統、資料庫系統及其他系統程式的重要基礎。

  電腦科學是一門研究用計算機進行資訊表示和處理的科學。這裡面涉及到兩個問題:資訊的表示,資訊的處理 。

  而資訊的表示和組織又直接關係到處理資訊的程式的效率。隨著計算機的普及,資訊量的增加,資訊範圍的拓寬,使許多系統程式和應用程式的規模很大,結構又相當複雜。因此,為了編寫出一個“好”的程式,必須分析待處理的物件的特徵及各物件之間存在的關係,這就是資料結構這門課所要研究的問題。眾所周知,計算機的程式是對資訊進行加工處理。在大多數情況下,這些資訊並不是沒有組織,資訊***資料***之間往往具有重要的結構關係,這就是資料結構的內容。資料的結構,直接影響演算法的選擇和效率。

  計算機解決一個具體問題時,大致需要經過下列幾個步驟:首先要從具體問題中抽象出一個適當的數學模型,然後設計一個解此數學模型的演算法***Algorithm***,最後編出程式、進行測試、調整直至得到最終解答。

  尋求數學模型的實質是分析問題,從中提取操作的物件,並找出這些操作物件之間含有的關係,然後用數學的語言加以描述。當人們用計算機處理數值計算問題是,所用的數學模型是用數學方程描述。所涉及的運算物件一般是簡單的整形、實型和邏輯型資料,因此程式設計者的主要精力集中於程式設計技巧上,而不是資料的儲存和組織上。然而,計算機應用的更多領域是“非數值型計算問題”,它們的數學模型無法用數學方程描述,而是用資料結構描述,解決此類問題的關鍵是設計出合適的資料結構,描述非數值型問題的數學模型是用線性表、樹、圖等結構來描述的。

  計算機演算法與資料的結構密切相關,演算法無不依附於具體的資料結構,資料結構直接關係到演算法的選擇和效率。運算是由計算機來完成,這就要設計相應的插入、刪除和修改的演算法 。也就是說,資料結構還需要給出每種結構型別所定義的各種運算的演算法。

  資料是資訊的載體,是可以被計算機識別儲存並加工處理的描述客觀事物的資訊符號的總稱。所有能被輸入計算機中,且能被計算機處理的符號的集合,它是計算機程式加工處理的物件。客觀事物包括數值、字元、聲音、圖形、影象等,它們本身並不是資料,只有通過編碼變成能被計算機識別、儲存和處理的符號形式後才是資料。

  資料元素是資料的基本單位,在計算機程式中通常作為一個整體考慮。一個數據元素由若干個資料項組成。資料項是資料結構中討論的最小單位。有兩類資料元素:若資料元素可再分,則每一個獨立的處理單元就是資料項,資料元素是資料項的集合;若資料元素不可再分,則資料元素和資料項是同一概念,如:整數"5",字元 "N" 等。例如描述一個學生的資訊的資料元素可由下列6個數據項組成。其中的出生日期又可以由三個資料項:"年"、"月"和"日"組成,則稱"出生日期"為組合項,而其它不可分割的資料項為原子項。

  關鍵字指的是能識別一個或多個數據元素的資料項。若能起唯一識別作用,則稱之為 "主" 關鍵字,否則稱之為 "次" 關鍵字。

  資料物件是性質相同的資料元素的集合,是資料的一個子集。資料物件可以是有限的,也可以是無限的。

  資料處理是指對資料進行查詢、插入、刪除、合併、排序、統計以及簡單計算等的操作過程。在早期,計算機主要用於科學和工程計算,進入八十年代以後,計算機主要用於資料處理。據有關統計資料表明,計算機用於資料處理的時間比例達到80%以上,隨著時間的推移和計算機應用的進一步普及,計算機用於資料處理的時間比例必將進一步增大。

  資料結構的分類

  資料結構是指同一資料元素類中各資料元素之間存在的關係。資料結構分別為邏輯結構、儲存結構***物理結構***和資料的運算。資料的邏輯結構是從具體問題抽象出來的數學模型,是描述資料元素及其關係的數學特性的,有時就把邏輯結構簡稱為資料結構。邏輯結構是在計算機儲存中的映像,形式地定義為***K,R******或***D,S******,其中,K是資料元素的有限集,R是K上的關係的有限集。

  根據資料元素間關係的不同特性,通常有下列四類基本的結構: ⑴集合結構。該結構的資料元素間的關係是“屬於同一個集合”。 線性結構。該結構的資料元素之間存在著一對一的關係。 ⑶樹型結構。該結構的資料元素之間存在著一對多的關係。 ⑷圖形結構。該結構的資料元素之間存在著多對多的關係,也稱網狀結構。 從上面所介紹的資料結構的概念中可以知道,一個數據結構有兩個要素。一個是資料元素的集合,另一個是關係的集合。在形式上,資料結構通常可以採用一個二元組來表示。

  資料結構的形式定義為:資料結構是一個二元組 :Data_Structure=***D,R***,其中,D是資料元素的有限集,R是D上關係的有限集。線性結構的特點是資料元素之間是一種線性關係,資料元素“一個接一個的排列”。在一個線性表中資料元素的型別是相同的,或者說線性表是由同一型別的資料元素構成的線性結構。在實際問題中線性表的例子是很多的,如學生情況資訊表是一個線性表:表中資料元素的型別為學生型別; 一個字串也是一個線性表:表中資料元素的型別為字元型,等等。

  線性表是最簡單、最基本、也是最常用的一種線性結構。 線性表是具有相同資料型別的n***n>=0***個數據元素的有限序列,通常記為: ***a1,a2,… ai-1,ai,ai+1,…an*** ,其中n為表長, n=0 時稱為空表。 它有兩種儲存方法:順序儲存和鏈式儲存,它的主要基本操作是插入、刪除和檢索等。

  資料結構在計算機中的表示***映像***稱為資料的物理***儲存***結構。它包括資料元素的表示和關係的表示。資料元素之間的關係有兩種不同的表示方法:順序映象和非順序映象,並由此得到兩種不同的儲存結構:順序儲存結構和鏈式儲存結構。

  順序儲存方法:它是把邏輯上相鄰的結點儲存在物理位置相鄰的儲存單元裡,結點間的邏輯關係由儲存單元的鄰接關係來體現,由此得到的儲存表示稱為順序儲存結構。順序儲存結構是一種最基本的儲存表示方法,通常藉助於程式設計語言中的陣列來實現。

  連結儲存方法:它不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關係是由附加的指標欄位表示的。由此得到的儲存表示稱為鏈式儲存結構,鏈式儲存結構通常藉助於程式設計語言中的指標型別來實現

  索引儲存方法:除建立儲存結點資訊外,還建立附加的索引表來標識結點的地址。

  雜湊儲存方法:就是根據結點的關鍵字直接計算出該結點的儲存地址。

  資料結構中,邏輯上***邏輯結構:資料元素之間的邏輯關係***可以把資料結構分成線性結構和非線性結構。線性結構的順序儲存結構是一種順序存取的儲存結構,線性表的鏈式儲存結構是一種隨機存取的儲存結構。線性表若採用鏈式儲存表示時所有結點之間的儲存單元地址可連續可不連續。邏輯結構與資料元素本身的形式、內容、相對位置、所含結點個數都無關。

資料結構的簡介

國內執行時間最長的火車
聯結器有什麼好處
相關知識
資料結構詳細簡介
桌上型電腦主機板硬體的基本結構詳細介紹
第八天電影詳細簡介
基於服裝網路調查的人口統計變數資料結構分析
巴金的詳細簡介
劉洪斌個人資料家庭背景簡介
踢足球的動作結構詳細分析
什麼是資料結構資料結構的分類
什麼是資料結構資料結構的分類
怎麼學好資料結構