原文出自:http://www.lxweimin.com/p/2a8a851c3ab0
你還在為開發(fā)中頻繁切換環(huán)境打包而煩惱嗎?快來試試 Environment Switcher 吧!使用它可以在app運(yùn)行時(shí)一鍵切換環(huán)境,而且還支持其他貼心小功能,有了它媽媽再也不用擔(dān)心頻繁環(huán)境切換了。https://github.com/CodeXiaoMai/EnvironmentSwitcher
數(shù)據(jù)結(jié)構(gòu):是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。
本文將“數(shù)據(jù)結(jié)構(gòu)”分為 “數(shù)據(jù)” 和 “結(jié)構(gòu)” 兩部分。
數(shù)據(jù)
程序設(shè)計(jì) = 數(shù)據(jù)結(jié)構(gòu) + 算法
-
數(shù)據(jù)
“數(shù)據(jù)”是描述客觀事物的符號,是計(jì)算機(jī)中可以操作的對象,是能被計(jì)算機(jī)識(shí)別,并輸入給計(jì)算機(jī)處理的符號集合。也就是說,我們這里說的數(shù)據(jù)其實(shí)就是符號,而且這些符號必須具備兩個(gè)前提:
- 可以輸入到計(jì)算機(jī)中
- 能被計(jì)算機(jī)程序處理
比如,數(shù)值、聲音、圖像、視頻等都是數(shù)據(jù)。
-
數(shù)據(jù)元素
“數(shù)據(jù)元素”是組成數(shù)據(jù)的、有一定意義的基本單位,在計(jì)算機(jī)中通常作為整體處理。也被稱為記錄。
比如,在人類中,人就是數(shù)據(jù)元素。
-
數(shù)據(jù)項(xiàng)
一個(gè)數(shù)據(jù)元素可以由若干個(gè)數(shù)據(jù)項(xiàng)組成。數(shù)據(jù)項(xiàng)是數(shù)據(jù)不可分割的最小單位。
比如人這個(gè)數(shù)據(jù)元素,可以有眼、耳、嘴等這些數(shù)據(jù)項(xiàng),也可以有姓名、年齡、性別等這些數(shù)據(jù)項(xiàng)。
-
數(shù)據(jù)對象
“數(shù)據(jù)對象”是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的子集。
性質(zhì)相同,是指數(shù)據(jù)元素具有相同數(shù)量和類型的數(shù)據(jù)項(xiàng)。比如人都有姓名、性別等相同的數(shù)據(jù)項(xiàng)。
-
數(shù)據(jù)結(jié)構(gòu)
“數(shù)據(jù)結(jié)構(gòu)”是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。
它們之間的關(guān)系:
數(shù)據(jù)(數(shù)據(jù)對象)
|
數(shù)據(jù)元素
|
數(shù)據(jù)項(xiàng)
結(jié)構(gòu)
按照視點(diǎn)的不同,我們把數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。邏輯結(jié)構(gòu)是面向問題的,而物理結(jié)構(gòu)是面向計(jì)算機(jī)的。
邏輯結(jié)構(gòu)
“邏輯結(jié)構(gòu)”是指數(shù)據(jù)對象中數(shù)據(jù)元素之間的相互關(guān)系。
邏輯分為四種:
- 集合結(jié)構(gòu):
集合結(jié)構(gòu)中的數(shù)據(jù)元素除了同屬于一個(gè)集合外,它們之間沒有其他關(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):
圖形結(jié)構(gòu)的數(shù)據(jù)元素是多對多的關(guān)系。
物理結(jié)構(gòu)
“物理結(jié)構(gòu)”是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存儲(chǔ)形式。
數(shù)據(jù)元素的存儲(chǔ)結(jié)構(gòu)形式有兩種:順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。
- 順序存儲(chǔ)結(jié)構(gòu):
把數(shù)據(jù)元素存放在地址連續(xù)的存儲(chǔ)單元里,其數(shù)據(jù)間的邏輯關(guān)系和物理關(guān)系是一致的。 - 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu):
把數(shù)據(jù)元素存放在任意的存儲(chǔ)單元里,這組存儲(chǔ)單元可以是連續(xù)的,也可以是不連續(xù)的。
抽象數(shù)據(jù)類型
數(shù)據(jù)類型是指一組性質(zhì)相同的值的集合及定義在此集合上的一些操作的總稱。
在C語言中,按照取值的不同,數(shù)據(jù)類型可以分為兩類:
- 原子類型:不可以再分解的基本類型,包括整型、實(shí)型、字符型等。
- 結(jié)構(gòu)類型:由若干個(gè)類型組合而成,是可以再分解的。
抽象數(shù)據(jù)類型(Abstract Data Type, ADT):是指一個(gè)數(shù)學(xué)模型及定義在該模型上的一組操作。它體現(xiàn)了程序設(shè)計(jì)中問題分解、抽象和信息隱藏的特性。
抽象數(shù)據(jù)類型的標(biāo)準(zhǔn)格式:
ADT 抽象數(shù)據(jù)類型名
Data
數(shù)據(jù)元素之間邏輯關(guān)系的定義
Operation
操作 1
初始條件
操作結(jié)果描述
操作 2
……
操作 n
……
endADT
總結(jié)
- 數(shù)據(jù)結(jié)構(gòu)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。
- 數(shù)據(jù)的邏輯結(jié)構(gòu)分為:集合結(jié)構(gòu)、線性結(jié)構(gòu)、樹形結(jié)構(gòu)、圖形結(jié)構(gòu)。
- 數(shù)據(jù)的物理結(jié)構(gòu)分為:順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。