在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成線性結(jié)構(gòu)和非線性結(jié)構(gòu)。邏輯結(jié)構(gòu)即數(shù)據(jù)元素之間的邏輯關(guān)系,是從邏輯關(guān)系上描述數(shù)據(jù),與數(shù)據(jù)的存儲無關(guān);因此根據(jù)數(shù)據(jù)元素之間的關(guān)系,邏輯結(jié)構(gòu)被分為兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。
本教程操作環(huán)境:windows7系統(tǒng)、Dell G3電腦。
數(shù)據(jù)結(jié)構(gòu)是計算機(jī)存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高的運(yùn)行或者存儲效率。數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。
數(shù)據(jù)的邏輯結(jié)構(gòu)指反映數(shù)據(jù)元素之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu),其中的邏輯關(guān)系是指數(shù)據(jù)元素之間的前后間關(guān)系,而與他們在計算機(jī)中的存儲位置無關(guān)。
數(shù)據(jù)結(jié)構(gòu)有很多種,一般來說,按照數(shù)據(jù)的邏輯結(jié)構(gòu)對其進(jìn)行簡單的分類,包括線性結(jié)構(gòu)和非線性結(jié)構(gòu)兩類。
線性結(jié)構(gòu)
簡單地說,線性結(jié)構(gòu)就是表中各個結(jié)點(diǎn)具有線性關(guān)系。如果從數(shù)據(jù)結(jié)構(gòu)的語言來描述,線性結(jié)構(gòu)應(yīng)該包括如下幾點(diǎn):
1、線性結(jié)構(gòu)是非空集。
2、線性結(jié)構(gòu)有且僅有一個開始結(jié)點(diǎn)和一個終端結(jié)點(diǎn)。
3、線性結(jié)構(gòu)所有結(jié)點(diǎn)都最多只有一個直接前趨結(jié)點(diǎn)和一個直接后繼結(jié)點(diǎn)。
線性表就是典型的線性結(jié)構(gòu),還有棧、隊(duì)列和串等都屬于線性結(jié)構(gòu)。
非線性結(jié)構(gòu)
簡單地說,非線性結(jié)構(gòu)就是表中各個結(jié)點(diǎn)之間具有多個對應(yīng)關(guān)系。如果從數(shù)據(jù)結(jié)構(gòu)的語言來描述,非線性結(jié)構(gòu)應(yīng)該包括如下幾點(diǎn):
1、非線性結(jié)構(gòu)是非空集。
2、非線性結(jié)構(gòu)的一個結(jié)點(diǎn)可能有多個直接前趨結(jié)點(diǎn)和多個直接后繼結(jié)點(diǎn)。
在實(shí)際應(yīng)用中,數(shù)組、廣義表、樹結(jié)構(gòu)和圖結(jié)構(gòu)等數(shù)據(jù)結(jié)構(gòu)都屬于非線性結(jié)構(gòu)。