2.2線性表
線性表的邏輯結(jié)構(gòu)是由n個數(shù)據(jù)元素組成的一個有限序列。線性表中所包含元素的個數(shù)叫線性表的長度.它是可變的.可同線性表中增加或刪除元素。線性表包括順序表、鏈表、散列表和串等。
1、線性鏈表
線性鏈表也稱為單鏈表,其每個一節(jié)點(diǎn)中只包含一個指針域。對鏈表進(jìn)行插人、刪除運(yùn)算時只需改變節(jié)點(diǎn)中指針域的值。
。1) 在指針一P后插人指針9的關(guān)鍵運(yùn)算步驟:
q ↑. link:=P↑.link:
p ↑. link:=q;
。ǎ玻﹦h除指針P后繼節(jié)點(diǎn)q的關(guān)鍵運(yùn)算步驟:
q:=p↑ . link;
p↑. link:=q↑.link;
。3)在第一個節(jié)點(diǎn)(或稱頭節(jié)點(diǎn))前插人一個指針P的關(guān)鍵運(yùn)算步驟:
p↑. link:=head;
head:二P;
。ǎ矗﹦h除表中頭節(jié)點(diǎn)的關(guān)鍵運(yùn)算步驟:
head:=head↑ . link:
2、雙鏈表
在雙鏈表中,每個節(jié)點(diǎn)中設(shè)置有兩個指針域,分別用以指向其前驅(qū)節(jié)點(diǎn)和后繼節(jié)點(diǎn)。rlink指向節(jié)點(diǎn)的后繼,llink指向節(jié)點(diǎn)的前驅(qū),這樣的結(jié)構(gòu)方便向后和向前查找。
。╨)若要在雙鏈表中刪除指針P所指的節(jié)點(diǎn)時,只需修改其前驅(qū)的rlink字段和后繼的Mink字段,步驟如下:
p↑ . llink↑. rlink:=p↑. rlink;
P↑T.rlink↑. llink:=P↑.llink;
(2)如果要在指針P后面插人指針q所指的新節(jié)點(diǎn),只需修改P指針?biāo)腹?jié)點(diǎn)的rlink字段和原來后繼均Ilink字段,并重新設(shè)置q所指節(jié)點(diǎn)的Mink和rlink值,步驟如下:
q ↑. Mink:=P:
q↑.rlink:=P↑.rlink;
P↑.rlink r. Rink:=q;
p↑.rlink:=q;
3、可利用空間表
可利用空間表的作用是管理可用于鏈表插人和刪除的節(jié)點(diǎn),當(dāng)鏈表插人需要一個新節(jié)點(diǎn)時,就從可利用空間表中刪除第一個節(jié)點(diǎn),用這個節(jié)點(diǎn)去做鏈表插人;當(dāng)從鏈表中刪除一個節(jié)點(diǎn)時,就把這個節(jié)點(diǎn)插人到可利用空間表的第一個節(jié)點(diǎn)前面。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |