一丶數(shù)據(jù)結(jié)構(gòu)基本概念
數(shù)據(jù)結(jié)構(gòu):就是數(shù)據(jù)之間相互存在的一種或多種特定的關(guān)系的元素的集合
1-1丶按照邏輯結(jié)構(gòu)上分,數(shù)據(jù)對(duì)象中數(shù)據(jù)元素之間的相互關(guān)系可以分為以下四種關(guān)系:
-
1.圖形結(jié)構(gòu)
-
2.樹形結(jié)構(gòu)
-
3.線性結(jié)構(gòu)
-
4.集合結(jié)構(gòu)
1-2丶按照物理結(jié)構(gòu)(邏輯結(jié)構(gòu))上分,數(shù)據(jù)對(duì)象中數(shù)據(jù)元素之間的相互關(guān)系可以分為以下兩種種關(guān)系:
-
1.順序存儲(chǔ)結(jié)構(gòu)
-
2.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
二丶抽象數(shù)據(jù)類型
數(shù)據(jù)類型:一組性質(zhì)相同的值的集合以及定義在此集合上的一些操作的總稱。
抽象數(shù)據(jù)類型:一個(gè)數(shù)字模型以及定義在該模型上的一組操作藕施。
2-1丶線性表
其中饮寞,a1是a2的前驅(qū),(ai+1)是(ai)的后繼圾笨,a1沒有前驅(qū)堂淡,an沒有后繼馋缅。
2-1-1丶順序存儲(chǔ)線性表
特點(diǎn):查詢很快,但是插入和刪除效率低绢淀。
2-1-2丶鏈?zhǔn)酱鎯?chǔ)線性表
線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)是用一組任意的存儲(chǔ)單元存儲(chǔ)線性表的數(shù)據(jù)元素萤悴,這組存儲(chǔ)單元可以是連續(xù)的也可以是不連續(xù)的。為了表示每個(gè)數(shù)據(jù)元素Ai與其后繼數(shù)據(jù)元素Ai+1之間的邏輯關(guān)系皆的,對(duì)數(shù)據(jù)元素Ai來說覆履,除了存儲(chǔ)其本身的數(shù)據(jù)信息以外,還需要存儲(chǔ)一個(gè)指示其后繼的信息祭务,如圖所示:
由上圖可得知,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的線性表特點(diǎn)是:查詢效率低怪嫌,但是插入和刪除效率高义锥。
2-2丶循環(huán)鏈表
將單鏈表中終端結(jié)點(diǎn)的指針端由空指針指向頭結(jié)點(diǎn),就使整個(gè)單鏈表形成一個(gè)環(huán)岩灭,這種頭尾相連的單鏈表就被稱為單循環(huán)鏈表拌倍,簡稱循環(huán)鏈表。
2-3丶雙向循環(huán)鏈表
雙向循環(huán)鏈表就是單向循環(huán)鏈表中的每一個(gè)結(jié)點(diǎn)噪径,再設(shè)置一個(gè)指向其前驅(qū)結(jié)點(diǎn)的指針域柱恤。
雙向循環(huán)鏈表的插入
雙向循環(huán)鏈表的刪除