0.定義
數(shù)據(jù)結(jié)構(gòu)中的邏輯結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。簡(jiǎn)單地說(shuō),線性結(jié)構(gòu)是n個(gè)數(shù)據(jù)元素的有序(次序)集合,它有下列幾個(gè)特征:
1.集合中必存在唯一的一個(gè)"第一個(gè)元素"楣责;
2.集合中必存在唯一的一個(gè)"最后的元素";
3.除最后元素之外聂沙,其它數(shù)據(jù)元素均有唯一的"后繼"秆麸;
4.除第一元素之外,其它數(shù)據(jù)元素均有唯一的"前驅(qū)"及汉。
一般地沮趣,一個(gè)線性表可以表示成一個(gè)線性序列:k1,k2坷随,…房铭,kn,其中k1是開(kāi)始結(jié)點(diǎn)温眉,kn是終端結(jié)點(diǎn)缸匪。
1. 線性表的順序表示和實(shí)現(xiàn)
線性表的順序表示指的是用物理上的一段連續(xù)的地址來(lái)存儲(chǔ)數(shù)據(jù)元素,如下圖所示类溢。如果第一個(gè)元素的在內(nèi)存上的地址為a1凌蔬,每個(gè)元素占用的空間是l,那么第n個(gè)元素的地址就是a1+(n-1) x l闯冷。
只要確定了第一個(gè)元素的地址砂心,那么我們可以對(duì)線性表中的任一元素隨機(jī)存取。由于編程語(yǔ)言中的數(shù)組也有隨機(jī)存取的特點(diǎn)窃躲,所以可以用數(shù)組來(lái)描述線性表的順序存儲(chǔ)結(jié)構(gòu)计贰。
2. 線性表的鏈?zhǔn)奖硎?br>
線性表的順序存儲(chǔ)結(jié)構(gòu)是邏輯位置和物理位置都相鄰钦睡,而鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是邏輯位置相鄰蒂窒,但物理位置不一定相鄰,相比順序存儲(chǔ)結(jié)構(gòu)荞怒,它不能隨機(jī)存取洒琢,但在插入和刪除操作時(shí)不需要移動(dòng)元素,大大提高了增加和刪除元素的效率褐桌。
鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)除了單鏈表之外衰抑,還有循環(huán)鏈表和雙向鏈表。