一、邏輯結(jié)構(gòu)
1.集合結(jié)構(gòu)
集合結(jié)構(gòu)
2.線(xiàn)性結(jié)構(gòu)
線(xiàn)性結(jié)構(gòu)
3.圖形結(jié)構(gòu)
圖形結(jié)構(gòu)
4.樹(shù)形結(jié)構(gòu)
樹(shù)形結(jié)構(gòu)
二、物理結(jié)構(gòu)
1.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
2.順序存儲(chǔ)結(jié)構(gòu)
順序存儲(chǔ)結(jié)構(gòu)
數(shù)據(jù)類(lèi)型:一組性質(zhì)相同的值的集合,以及定義在此集合上的一些操作的總稱(chēng).
抽象數(shù)據(jù)類(lèi)型:一個(gè)數(shù)字模型及定義在該模型上的一組操作.
①線(xiàn)性表
線(xiàn)性表.png
a1是a2的前驅(qū),ai+1是ai的后繼,a1沒(méi)有前驅(qū),an沒(méi)有后繼.
n為線(xiàn)性表的長(zhǎng)度,n==0,線(xiàn)性表為空表
-
順序存儲(chǔ)方式線(xiàn)性表
順序存儲(chǔ)方式線(xiàn)性表.png
存儲(chǔ)位置連續(xù),可以很方便計(jì)算各個(gè)元素的地址
如每個(gè)元素占C個(gè)存儲(chǔ)單元新荤,那么有:
Loc(An) = Loc(An-1) + C
,于是有:
Loc(An) = Loc(A1)+(i-1)\*C;
插入.png
刪除.png
優(yōu)點(diǎn):
查詢(xún)很快
缺點(diǎn):
插入和刪除效率慢
-
鏈?zhǔn)酱鎯?chǔ)方式線(xiàn)性表
線(xiàn)性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)是用一組任意的存儲(chǔ)單元存儲(chǔ)線(xiàn)性表的數(shù)據(jù)元素,這組存儲(chǔ)單元可以是連續(xù)的,也可以是不連續(xù)的
為了表示每個(gè)數(shù)據(jù)元素Ai與其直接后繼數(shù)據(jù)元素Ai+1之間的邏輯關(guān)系挣跋,對(duì)數(shù)據(jù)元素Ai來(lái)說(shuō),除了存儲(chǔ)其本身的信息之外狞换,還需存儲(chǔ)一個(gè)指示其直接后繼的信息
1.png
2.png
3.png
4.png
優(yōu)點(diǎn):
查詢(xún)很慢
缺點(diǎn):
插入和刪除效率高
插入
e->next = p->next
p-next = s ;
刪除.png
p->next = p->next->next
-
循環(huán)鏈表
將單鏈表中終端結(jié)點(diǎn)的指針端由空指針改為指向頭結(jié)點(diǎn)避咆,就使整個(gè)單鏈表形成一個(gè)環(huán),這種頭尾相連的單鏈表稱(chēng)為單循環(huán)鏈表修噪,簡(jiǎn)稱(chēng)循環(huán)鏈表
循環(huán)鏈表.png
-
雙向循環(huán)鏈表
雙向循環(huán)鏈表是單向循環(huán)鏈表的每個(gè)結(jié)點(diǎn)中查库,再設(shè)置一個(gè)指向其前驅(qū)結(jié)點(diǎn)的指針域
雙向循環(huán)鏈表.png
對(duì)于空的雙向循環(huán)鏈表
空的雙向循環(huán)鏈表.png
雙向循環(huán)列表插入
雙向循環(huán)列表插入.png
插入代碼.png
雙向循環(huán)列表刪除
雙向循環(huán)列表刪除.png
刪除代碼.png