要搞清楚上面的區(qū)別,需要搞清楚幾個(gè)概念。
邏輯結(jié)構(gòu):結(jié)構(gòu)定義中是對(duì)操作對(duì)像的數(shù)學(xué)描述,描述的是數(shù)據(jù)元素之間的邏輯關(guān)系。例如,線性結(jié)構(gòu),樹(shù)形結(jié)構(gòu),圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。它們都屬于邏輯結(jié)構(gòu)。
物理結(jié)構(gòu):又稱存儲(chǔ)結(jié)構(gòu),是數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的表示(又稱映像)。例如,數(shù)組,指針。
搞清楚了上面的兩個(gè)概念,相信就很好理解區(qū)分線性表,順序表,鏈表,數(shù)組了。
線性表:屬于邏輯結(jié)構(gòu)中的線性結(jié)構(gòu),它包括順序表和鏈表。
順序表:線性表中的一種,它是用數(shù)組來(lái)實(shí)現(xiàn)的一種線性表,所以它的存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu))是連續(xù)的。
鏈表:線性表中的一種,它的存儲(chǔ)結(jié)構(gòu)是用任意一組存儲(chǔ)單元來(lái)存儲(chǔ)數(shù)據(jù)元素。所以它的存儲(chǔ)結(jié)構(gòu)可以是連續(xù)的,也可以不是連續(xù)的。一般我們說(shuō)的鏈表都是不連續(xù)的。有一種用數(shù)組來(lái)表示的鏈表,叫做靜態(tài)鏈表,它的存儲(chǔ)結(jié)構(gòu)就是連續(xù)的。
數(shù)組:一種物理結(jié)構(gòu),它的存儲(chǔ)單元是連續(xù)的。
下面用一張關(guān)系圖來(lái)說(shuō)明它們之間的關(guān)系。
這里額外說(shuō)明的是:兩種存儲(chǔ)結(jié)構(gòu)的優(yōu)缺點(diǎn),見(jiàn)下表: