資料結構緒論

魏图图發表於2024-09-07

資料結構緒論

資料結構基礎:線性資料結構+非線性資料結構

線性資料結構:
線性表(連結串列),棧,佇列,一維陣列,串

非線性資料結構:
二維陣列,多維陣列,廣義表,樹+二叉樹,圖

資料結構應用:查詢+排序

查詢:靜態查詢,動態查詢
排序:內部(針對記憶體)排序(插入類,交換類,歸併累,選擇類),外部排序(硬碟)

資料結構基本概念

  1. 資料
  • 是能輸入計算機且能被計算機處理的各種符號集合
  • 資訊的載體
  • 是對客觀事物符號化的表示
  • 能夠被計算機識別,儲存和加工
  1. 資料元素
  • 資料的基本單位,通常作為一個整體進行考慮和處理
  1. 資料項
  • 一個資料元素可由若干個資料項組成,資料項是資料元素的不可分割的最小單位
  1. 資料物件
  • 具有相同性質的資料元素的集合,是資料的一個子集
  1. 資料結構
  • 相互之間存在一種或者多種特定關係的資料元素的集合

資料結構的三要素:

一、邏輯結構:

從邏輯關係上描述資料,與資料的儲存無關,是從具體問題抽象處理的數學模型(邏輯結構獨立於儲存結構)

集合結構
各元素同屬於一個結構,別無其他關係

線性結構
資料元素之間是一對一的關係,有且僅有一個開始和一個終端結點,除了第一個元素,所有的元素都有唯一前驅,除了最後一個元素,所有元素都有唯一後繼(例如:線性表,棧,佇列,串)

樹形結構
資料元素之間是一對多的關係

圖(網)狀結構
資料元素之間是多對多的關係

二、資料的運算:

資料上的某些操作,包括(1)查詢(2)插入(3)刪除(4)修改(5)排序

運算的定義是針對邏輯結構的,指出運算的功能

運算的實現是針對儲存結構的,指出運算的具體操作步驟

三、物理結構(儲存結構):

資料元素及其關係在計算機中記憶體中的儲存形式(又稱映像)

順序儲存
邏輯上相鄰的元素儲存在物理位置上也相鄰的儲存單元中,即資料元素存放在地址連續的儲存單元裡,例如陣列

鏈式儲存
把資料元素存放在任意的儲存單元裡,這組儲存單元可以連續也可以不連續,利用結點中的指標來表示資料元素之間的關係

索引儲存
在儲存元素資訊的同時,還建立附加的索引表。索引表中的每項稱為索引項,索引項的一般形式是(關鍵字,地址 / 指標),類似目錄

雜湊儲存
根據元素的關鍵字直接計算出該元素的物理(儲存)地址,又稱雜湊(hash)儲存

注意

  1. 若採用順序儲存,則各個資料元素在物理上必須是連續的;若採用非順序儲存,則各個資料元素在物理上可以是離散的
  2. 資料的儲存結構會影響儲存空間分配的方便程度
  3. 資料的儲存結構會影響對資料運算的速度

資料型別和抽象資料型別

資料型別:是指一組性質相同的值的集合和定義在此集合上的一組操作的總稱

(1) 原子型別
其值不可再分的資料型別,例如:布林型別,整型,實型,字元型等

(2) 結構型別
其值可以再分解為若干成分(分量)的資料型別,例如:結構體

抽象資料型別:是指一個數學模型及定義在該模型上的一組操作(對資料結構邏輯關係的描述),包括三個方面

( 1 ) 由使用者定義:從具體問題抽象出數學模型(邏輯結構)

( 2 ) 資料的運算:定義在此數學模型上的一組抽象操作

( 3 ) 不考慮在計算機內的具體儲存結構與運算的具體實現

抽象資料型別 = 邏輯結構 + 抽象運算

抽象資料型別實質上是一個對求解問題的形式化描述(與計算機無關),程式設計師可以在理解基礎上實現

抽象資料型別定義

資料結構由一個四元組來表示:

Data_Structure = (D,R,L,O),資料元素,資料元素之間的邏輯關係,邏輯關係在計算機中的儲存表示,以及所規定的操作這四部分

抽象資料型別 ADT 一般包含資料元素,資料元素之間關係以及操作三要素 (D,R,O),其中:

D 是資料元素集
RD 上的關係集合
O 是對 D 的基本操作集(抽象操作)

可以用抽象資料型別定義一個完整的資料結構

ADT 抽象資料型別名 {
	//資料物件,資料關係的定義用虛擬碼操作
	資料物件:<資料物件的定義>
	資料關係:<資料關係的定義>
	基本操作:<基本操作的定義>
} ADT 抽象資料型別名 

//Circle 圓的定義
ADT Circle {
	D = {r,x,y|r,x,y均為實數}
	R = {r,x,y|r是半徑,<x,y>為圓心座標}
	Circle(&C,r,x,y)
		操作結果:構造一個圓
} ADT Circle 

資料結構求解問題過程

小結

相關文章