(此篇文章已於2020/02/23發布,此為轉為系列文後的重發,若有造成不便,還請見諒。)

1.1 資料結構的起源

資料結構是什麼呢?

資料結構(Data Structure)是一門研究非數值計算的程式設計問題中,電腦的物件以及他們彼此之間的關係操作的學科。

而程式設計就是由資料結構以及演算法的概念和術語所組合而成的,這就是為什麼資料結構如此的重要。


1.2 甚麼是資料?

資料(Data):
描述客觀事務,必須是可輸入至電腦中操作也可被辨識處理的符號集合。類別分為如整數、浮點數等資料型別和字元、音訊、圖像和視訊等非數值資料,非數值資料可經過編碼轉換成字元資料再加以處理。

資料元素:
又稱為記錄(Record),為組成資料且具有意義基本單位,資料元素為資料結構中建立資料模型的焦點。

資料項目:
為資料不可分割之最小單位資料元素是由資料項目所組成的,資料項目會有什麼樣的內容視系統需求決定

資料物件:
為資料的子集,是性質相同資料元素的集合,由於在實際應用時,資料元素通常具有相同的性質,因此也可以將資料物件稱為資料

資料結構:
指資料元素之間的相互關係


1.3 資料結構的分類

1.3.1邏輯結構(Logical Structure)

邏輯結構是為了解決某個具體的問題(指向問題)。

集合結構(Set Structure):
所有的資料元素唯一的關係就是在同一個集合(此指數學中的集合)。

線性結構(Linear Structure):
資料元素之間是一對一的關係。

樹狀結構(Tree Structure):
資料元素之間是一對多的關係。

圖形結構(Graph Structure):
資料元素之間是多對多的關係。

1.3.2物理結構(Physical Structure, 也稱作儲存結構)

物理結構是指資料的邏輯結構在電腦中的儲存形式(指向電腦),表示出如何將資料元素儲存到電腦的儲存裝置(記憶體)中,通常是運用文件結構(Document Structure)描述,資料的儲存結構可以反映出資料元素之間的邏輯關係。

順序儲存結構(Sequential Storage Structure):
將資料元素放在位置連續的儲存單元裡,邏輯關係和物理關係是一致的。

鏈結儲存結構(Linked Storage Structure):
將資料元素任意放置在儲存單元裡,使用指標存放資料元素的位置,由於儲存單元可為連續也可為非連續,因此無法反映其邏輯關係


1.4 抽象資料型別(Abstract Data Type, ADT)

抽象資料型別定義為一個數學模型和在此模型上的操作,它有自己的邏輯特性,和在電腦內部如何表示和實現無關,一個資料型別定義了一個資料物件,資料物件和資料元素之間的關係,和對資料元素的操作,可根據實際狀況設計。

抽象是指取出事物具有普遍性的本質,只保留實現目標時必要的資訊(特徵)。
舉例來說,不管是哪種電腦類型,都擁有「整數」型別,即使呈現方式可能不同,但是數學特性皆相同,在此抽象的意義便是資料型別的數學抽象特性。
抽象資料型別不僅限於已定義完成的資料型別自定義資料型別也算,抽象資料型別也展現了程式設計中的問題分解抽象,和資訊隱藏特性(將具體完成的過程隱藏起來)。








你可能感興趣的文章

[Day 1] JS in Pipeline - DevOps for Local Development Environment (1)

[Day 1] JS in Pipeline - DevOps for Local Development Environment (1)

MTR04_0729

MTR04_0729

TypeScript

TypeScript






留言討論