![第二章線性表_第1頁](http://file4.renrendoc.com/view/09f735116c19b313ee442a17e81b52e6/09f735116c19b313ee442a17e81b52e61.gif)
![第二章線性表_第2頁](http://file4.renrendoc.com/view/09f735116c19b313ee442a17e81b52e6/09f735116c19b313ee442a17e81b52e62.gif)
![第二章線性表_第3頁](http://file4.renrendoc.com/view/09f735116c19b313ee442a17e81b52e6/09f735116c19b313ee442a17e81b52e63.gif)
![第二章線性表_第4頁](http://file4.renrendoc.com/view/09f735116c19b313ee442a17e81b52e6/09f735116c19b313ee442a17e81b52e64.gif)
![第二章線性表_第5頁](http://file4.renrendoc.com/view/09f735116c19b313ee442a17e81b52e6/09f735116c19b313ee442a17e81b52e65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第二章線性表線性結(jié)構(gòu)特點:在數(shù)據(jù)元素的非空有限集中存在唯一的一個被稱作“第一個”的數(shù)據(jù)元素存在唯一的一個被稱作“最后一個”的數(shù)據(jù)元素除第一個外,集合中的每個數(shù)據(jù)元素均只有一個前驅(qū)除最后一個外,集合中的每個數(shù)據(jù)元素均只有一個后繼2.1線性表的類型定義1、線性表線性表(LinearList):由n(n≥0)個數(shù)據(jù)元素(結(jié)點)a1,a2,…an組成的有限序列。其中:數(shù)據(jù)元素的個數(shù)n定義為表的長度。當(dāng)n=0時稱為空表常將非空的線性表(n>0)記作:(a1,a2,…an)
說明:數(shù)據(jù)元素ai(1≤i≤n)只是一個抽象的符號,其具體含義在不同的情況下可以不同。
例1、26個英文字母組成的字母表(A,B,C、…、Z)例3、學(xué)生健康情況登記表如下:姓名學(xué)號性別年齡健康情況王小林790631男18健康陳紅790632女20一般劉建平790633男21健康張立立790634男17神經(jīng)衰弱……..……..…….…….…….例2、某校從1978年到1983年各種型號的計算機擁有量的變化情況:(6,17,28,50,92,188)例4、一副撲克的點數(shù)(2,3,4,…,J,Q,K,A)從以上例子可看出線性表的邏輯特征是:在非空的線性表,有且僅有一個開始結(jié)點a1,它沒有直接前趨,而僅有一個直接后繼a2;有且僅有一個終端結(jié)點an,它沒有直接后繼,而僅有一個直接前趨an-1;其余的內(nèi)部結(jié)點ai(2≤i≤n-1)都有且僅有一個直接前趨ai-1和一個直接后繼ai+1。
線性表是一種典型的線性結(jié)構(gòu)。
2、抽象數(shù)據(jù)類型線性表的定義ADTList{
數(shù)據(jù)對象:D={ai|ai
∈ElemSet,i=1,2,...,n,n≥0}數(shù)據(jù)關(guān)系:R1={<ai-1,ai>|ai-1,ai∈D,i=2,...,n}
基本操作:InitList(&L){初始化}操作結(jié)果:構(gòu)造一個空的線性表L。DestroyList(&L){結(jié)構(gòu)銷毀}初始條件:線性表L已存在。操作結(jié)果:銷毀線性表L。
{引用型操作}
ListEmpty(L)初始條件:線性表L已存在。操作結(jié)果:若L為空表,則返回TRUE,否則FALSE。ListLength(L)初始條件:線性表L已存在。操作結(jié)果:返回L中元素個數(shù)。GetElem(L,i,&e)初始條件:線性表L已存在,1≤i≤LengthList(L)操作結(jié)果:用e返回L中第i個元素的值。
LocateElem(L,e,compare())初始條件:線性表L已存在,compare()是元素判定函數(shù)。操作結(jié)果:返回L中第1個與e滿足關(guān)系compare()的元素的位序。若這樣的元素不存在,則返回值為0。PriorElem(L,cur_e,&pre_e)初始條件:線性表L已存在。操作結(jié)果:若cur_e是L的元素,但不是第一個,則用pre_e返回它的前驅(qū),否則操作失敗,pre_e無定義。NextElem(L,cur_e,&next_e)初始條件:線性表L已存在。操作結(jié)果:若cur_e是L的元素,但不是最后一個,則用next_e返回它的后繼,否則操作失敗,next_e無定義。
ListTraverse(L,visit())初始條件:線性表L已存在。操作結(jié)果:依次對L的每個元素調(diào)用函數(shù)visit()。一旦visit()失敗,則操作失敗。
{加工型操作}ClearList(&L)初始條件:線性表L已存在。操作結(jié)果:將L重置為空表。PutElem(L,i,&e)初始條件:線性表L已存在,1≤i≤LengthList(L)操作結(jié)果:L中第i個元素賦值同e的值。ListInsert(&L,i,e)初始條件:線性表L已存在,1≤i≤LengthList(L)+1操作結(jié)果:在L的第i個元素之前插入新的元素e,L的長度增1。ListDelete(&L,i,&e)初始條件:線性表L已存在且非空,1≤i≤LengthList(L)操作結(jié)果:刪除L的第i個元素,并用e返回其值,L的長度減1。}ADTList
voidunion(List&La,ListLb){La_len=Listlength(La);Lb_len=Listlength(Lb);for(i=1;i<=Lb_len;i++){GetElem(Lb,i,e);if(!LocateElem(La,e,equal))ListInsert(La,++La_len,e);}}例2-1利用兩個線性表LA和LB分別表示兩個集合A和B,現(xiàn)要求一個新的集合A=A∪B。3、算法講解
算法2.2例2-2已知線性表LA和線性表LB中的數(shù)據(jù)元素按值非遞減有序排列,現(xiàn)要求將LA和LB歸并為一個新的線性表LC,且LC中的元素仍按值非遞減有序排列。此問題的算法如下:
voidMergeList(ListLa,ListLb,List&Lc){InitList(Lc);i=j=1;k=0;La_len=ListLength(La);Lb_len=ListLength(Lb);while((i<=La_len)&&(j<=Lb_len)){GetElem(La,i,ai);GetElem(Lb,j,bj);if(ai<=bj){ListInsert(Lc,++k,ai);++i;}else{ListInsert(Lc,++k,bj);++j;}}
while(i<=La_len){GetElem((La,i++,ai);ListInsert(Lc,++k,ai);}while(j<=Lb_len){GetElem((Lb,j++,bj);ListInsert(Lc,++k,bi);}}數(shù)據(jù)的運算是定義在邏輯結(jié)構(gòu)上的,而運算的具體實現(xiàn)則是在存儲結(jié)構(gòu)上進行的。2.2線性表的順序表示和實現(xiàn)
2.2.1順序表把線性表的結(jié)點按邏輯順序依次存放在一組地址連續(xù)的存儲單元里。用這種方法存儲的線性表簡稱順序表。假設(shè)線性表的每個元素需占用L個存儲單元,并以所占的第一個單元的存儲地址作為數(shù)據(jù)元素的存儲位置。則線性表中第i+1個數(shù)據(jù)元素的存儲位置LOC(ai+1)和第i個數(shù)據(jù)元素的存儲位置LOC(ai)之間滿足下列關(guān)系:LOC(ai+1)=LOC(ai)+L線性表的第i個數(shù)據(jù)元素ai的存儲位置為:LOC(ai)=LOC(a1)+(i-1)*L圖示a1a2aibb+Lb+L*(I-1)12i內(nèi)存元素序號b+L*(n-1)備用空間an
n返回typedefstructcard{intnum;charname[20];charauthor[10];charpublisher[30];floatprice;}elemtype;#de失fi暖ne咱LI民ST推_I支NI肝T_疾SI瘡ZE駝10例0//線性沙表初葉始空墾間,極是征單位細空間咬的倍拔數(shù)#de威fi蹦ne劍LI嚴(yán)ST繡IN努CR系EM篩EN棗T采10防/京/分配素空間妨增量ty塌pe菌de君fst伴ru你ct{El強em腔Ty早pe*el魂em;蹄//存儲永空間階起始斧地址in咽tle奸ng眾th壘;煩//當(dāng)前斃長度in鵲tli位st洪si鬧ze;戲//當(dāng)前豪分配探空間}Sq戀Li展st;例如占:Sq曲Li爸stl,逝*簽pl簡;下面裳為用C語言驚描述賤的可柿動態(tài)深分配革的一謹(jǐn)維數(shù)旬組:2.春2.奇2順序燈表上售實現(xiàn)擾的基野本操伏作在順纏序表付存儲廢結(jié)構(gòu)蘆中,艘很容令易實云現(xiàn)線炎性表尖的一垃些操汽作,撿如線疼性表強的構(gòu)拔造、鄉(xiāng)豐第i個元冒素的斃訪問墾。1.順序辦表的蚊初始頸化:順序碧表的架初始牙化即突構(gòu)造裂一個菠空表拿。村算法尊如下旗:St釋at韻usIn變it秀Li蝦st沫_S土q(Sq劈燕Li西st&L告){L.脖el蓬em=(El嫁em企Ty慚pe*)ma碌ll牛oc鏈(s去iz侵eo楊f(亭El殘em奇Ty賺pe)*L蠻IS花T_莊IN杜IT弱_S娛IZ澇E)弟;if圈(!L.念el弄em)棄e爭xi縱t(捏OV輸ER坑FL截OW棍);L.嘗le凱ng狹th鴉=0飾;L.l俊is涂ts井iz應(yīng)e=L圣IS愈T_革IN陰IT演_S五IZ衫E;re丙tu衰rn賞O聾K;}2、插入:線性篩表的債插入五運算晃是指芒在表青的第i耕(1≤i≤n+筋1)個位英置上焦,插版入一論個新臭結(jié)點e,使長菊度為n的線疏性表(a1,…叨ai-仇1,ai,…泄,an)變成蠢長度臺為n+拖1的線哪性表(a1,…阿ai-灣1,e,ai,…貼,an)算法2.尾4圖示St嫌at本usLi妨st見In嫁se忽rt昆_s橋q(Sq叨Li巾st&L竟,El超em眠Ty鉗pee,in膝ti){//在順往序線障性表L的第i個元致素之?dāng)D前插擦入新嘴的元//素e,懂i的合裝法值蹲為1≤i≤宿L.錢le拖ng坑th翻+1驢,若表//中容斑量不橋足,框則按裁該順租序表睛的預(yù)格定義赤增量乓擴容if印(i賤<1和|腸|囑i>諒L.曾le理ng閘th值+1跌)re棚tu碧rn貧E信RR躬OR板;if絮(L黎.l帆en沃gt冊h>捕=L.買li砍st妹si拐ze){ne狂wb抗as廁e=(El壇em遼Ty米pe*)枕(re喜al福lo墾c(吊L.權(quán)el瘡em治,(勾L.躲li訴st售si小ze+LI懶ST讀IN由CR句EM納EN商T)紫*si悠ze底of歇(E淹le臉mT它yp掩e))綠;if御(接!ne燥wb拿as系e)靜e戲xi脅t豪(刪OV捷ER臟FL蘭OW而)爺;L.陜el察em=ne府wb雖as紙e;L.喉li離st以si用ze+=航LI辛ST從IN壟CR蠶EM啞EN牽T;璃}q=巖&(班L.隨el乖em遮[i屠-1認(rèn)])嘴;fo訪r(既p=趁&(階L.經(jīng)el涼em庸[L誘.l益en馳gt嫌h-晚1]穿);說p>政=q蓬;-園-p徑)*(蝕p+姑1)摟=*士p;*q諷=e腔;++荷L.臨le偽ng鵲th債;re吼tu四rn干O衡K;獻}}內(nèi)存a1a2aiai+1an01i-1數(shù)組下標(biāo)n-1in12i元素序號i+1nn+1內(nèi)存a1a2aiai+1an01i-1數(shù)組下標(biāo)n-1in12i元素序號i+1nn+1an-1e返回現(xiàn)在牧分析亂算法迅的復(fù)作雜度戴。這里可的問貸題規(guī)稿模是顧表的耍長度絞,設(shè)效它的眾值為n。該算參法的沿時間慢主要料花費澤在循值環(huán)的軍結(jié)點恒后移悼語句略上,河該語家句的猜執(zhí)行梯次數(shù)態(tài)(即覆移動昆結(jié)點鞏的次館數(shù))深是n-兆i+游1。由此煤可看話出,支所需荷移動雁結(jié)點尤的次距數(shù)不特僅依蘭賴于悼表的璃長度逐,而星且還扔與插統(tǒng)入位召置有綠關(guān)。當(dāng)i=殲n時,譽由于讓循環(huán)鳳變量經(jīng)的終主值大響于初曉值,望結(jié)點鉗后移殃語句著將不收進行增;這陳是最疏好情群況,糾其時長間復(fù)相雜度O(響1)鋤;當(dāng)i=豬1時,指結(jié)點殲后移惕語句溜將循的環(huán)執(zhí)倡行n次,碎需移惡動表努中所壘有結(jié)厭點,霉這是尖最壞碧情況股,其時銷間復(fù)攝雜度府為O(侍n)傘。算法披時間瓶復(fù)雜處度T(瞇n)設(shè)Pi是在黨第i個元防素之懸前插惠入一論個元沫素的載概率襖,則跨在長洋度為n的線況性表耍中插匪入一咬個元逆素時擋,所歪需移涌動的藏元素威次數(shù)煩的平惱均次彼數(shù)為典:也就狼是說照,在板順序泛表上霞做插酷入運脹算,下平均丘要移鄭動表談上一宣半結(jié)撇點。摟當(dāng)表骨長n較大槐時,查算法升的效鮮率相著當(dāng)?shù)偷?。雖喚然Eis(n)中n的的奧系數(shù)糖較小激,但敬就數(shù)躲量級革而言堤,它菠仍然粘是線植性階就的。須因此抗算法道的平搞均時騾間復(fù)猶雜度要為O(瞎n)壺。3、刪除線性嘴表的廣刪除惰運算圍是指采將表紡的第i(踏1≦冬i≦擱n)結(jié)點堡刪除承,使夫長度桶為n的線暈性表慚:(a1,…輸ai-煩1,ai,ai+醒1…,叼an)變成滴長度朵為n-蠟1的線霜性表(a1,…硬ai-穴1,ai+罩1,…酷,an)內(nèi)存a1a2aiai+1an01i-1V數(shù)組下標(biāo)n-1in12i元素序號i+1nn+1內(nèi)存a1a2ai+1V數(shù)組下標(biāo)01i-1n-2in-112i元素序號i+1n-1nanai+2St冒at泛usLi控st浸De紙le越te(Sq宵Li滅st&L獻,in蓬ti,齒El咬em打Ty矛pe&e工){/健/在順畝序線釘性表L中刪閘除第i個元堂素,復(fù)并用e//返回系其值逃,i的合摘法值趴為1≤i≤競L.弄le亡ng錦th渾。If酷(歉i偉<1模|陪|刑i>撇L.餐le梢ng謹(jǐn)th塌)劈燕{re扒tu匙rn該E鑰RR懷OR喪;斑}p=窮&(鳳L.歉el尺em牲[i悟-1刷])蕩;e=雙*p筐;q=迎L.摩el動em垃+L猴.l膊en飽gt鉆h-濁1;fo筆r(通++斗p;賊p<章=q艷;+竟+p隸)善*袍(p樂-1柄)=浪*p沙;--市L.觸le澇ng糾th貍;re眨tu去rn恐O距K;聲}分析耕:該算寇法的饑時間敵分析機與插產(chǎn)入算欠法相憶似,駐結(jié)點鬼的移冊動次鋸數(shù)也尸是由殘表長n和位店置i決定樂。若i=疫n,則由連于循此環(huán)變劑量的糠初值忠大于死終值穿,前足移語藥句將襲不執(zhí)劣行,恒無需弱移動惑結(jié)點呀;若i=庸1,則前量移語殿句將而循環(huán)胳執(zhí)行n-拜1次,誘需移翁動表黨中除寺開始妥結(jié)點信外的出所有楚結(jié)點冒。這進兩種獵情況挽下算吵法的醫(yī)時間學(xué)復(fù)雜泊度分打別為O(兆1)和O(娘n)糞。刪除壓算法童的平味均性甘能分肯析與男插入包算法烏相似拆。在胃長度修為n的線磨性表勞中刪往除一削個結(jié)續(xù)點,魂令Ede(n)表示瀉所需軋移動鬼結(jié)點洲的平痕均次全數(shù),介刪除倉表中犁第i個結(jié)閘點的尊移動失次數(shù)室為n-捷i,故式中霧,Qi表示伯刪除核表中炮第i個結(jié)表點的拳概率晉。在等眾概率謹(jǐn)?shù)募倥栽O(shè)下姓,p1=p2=p3=…綁=pn=1固/n由此攻可得圓:即在辰順序扣表上積做刪墳除運最算,便平均覽要移落動表冒中約霸一半偷的結(jié)亮點,菠平均奸時間吃復(fù)雜復(fù)度也由是O(啊n)儉。結(jié)論1:在順序逆表中碧插入稀或刪麻除一個瘡元素螞時,益平均怕移動敏表的嫩一半悠元素逼,當(dāng)n很大醒時,效率持很低4.按值朋查找線性福表中能的按系值查哭找是偷指在場線性男表中貍查找末與給勾定值e相等往的數(shù)計據(jù)元皂素。簽在順侮序表普中完捕成該抄運算竿最簡蛋單的印方法鈴是:銹從第趟一個沸元素a1起依般次和e比較加,直洲到找擁到一棵個與e相等績的數(shù)撞據(jù)元峰素,鳥則返鴿回它秀在順嶺序表杜中的博存儲濃下標(biāo)柱或序絮號(販二者喂差一膽);略或者土查遍咱整個滾表都歉沒有施找到宴與e相等辜的元包素,危返回-1或0。in依tLo磨ca勵te拒_S唐q(虹Sq繼Li攔stL,El裝em縣Ty旁pee){臨i=溝0;伍//此題水與書蓋不同p=L.萬el蛛em;2.寧2.斃3順序做表應(yīng)丸用舉突例wh疤il宜e(移i<壩=L浪.l險en呀gt安h-子1鋸&&另*已p!傾=悼e){喇i+簽+;襪+悶+p角;}if囑(睬i>籃=L悄.l搭en陰gt榨h)特re消tu鳴rn所-糟1;el致se謙r協(xié)et街ur芳n滿i;叨/*返回?zé)煹氖橇执鎯Υ挝恢梅?/}奧/池/算法2.襯6例1有順電序表A和B,其元渣素均書按從哲小到營大的頁升序謹(jǐn)排列憐,編庫寫一捉個算鋪法將洪它們?nèi)购喜⒑梢粩r個順量序表C,要求C的元大素也地是從點小到墾大的揪升序束排列士。算法航思路完:依取次掃逆描通鉆過A和B的元元素,屑比較錘當(dāng)前紛的元窗素的何值,括將較啦小值享的元險素賦音給C,如此膝直到呆一個吃線性壁表掃柏描完五畢,腹然后充將未混完的鑰那個歸順序躺表中續(xù)余下沒部分青賦給C即可罪。C的容揚量要勢能夠泡容納A、B兩個工線性緩表相珠加的悶長度因。vo侍idMe阻rg汗eL廢is攪t_S驕q(Sq柳Li枕stLa學(xué),Sq傘Li白stLb旋,Sq窗Li產(chǎn)st&Lc){悅pa壁=L議a.el爬em;pb=L騰b.el隔em;Lc.li尚st塘si泊ze=Lc.l角en江gt袋h=緩La械.l蜂en序gt納h+確Lb鏟.l叮en宴gt舉h;pc展=Lc.el攀em=(El過em礦Ty翅pe*)ma貞ll弟oc(Lc.li衫st冷si嶺ze*si緊ze武of(El拼em是Ty直pe))遣;if肝(公!Lc.el差em)低e雪xi謠t(蒙OV木ER貼FL絹OW質(zhì));pa堡_l辜as緊t=譯La懷.e技le躬m+疲La仁.l匪en培gt抖h-毅1;pb_l干as亂t=躬Lb銳.e執(zhí)le膨m+約Lb擊.l賄en命gt裳h-稱1;wh順il滑e仇(p塔a<市=p掙a_拌la擴st脆&&pb<=pb_l好as敵t)凡{if訴(我*觀pa利<=油*pb)揪*p頑c+枕+=荷*p偉a+冰+;el藏se確*p潑c+童+=甚*pb++但;}wh閥il級e詳(志pa烘<=玻pa蜂_l遷as遮t)稼*的pc兵++版=*敢pa道++馬;wh框il音e爪(pb<=pb_l熟as培t)散*p顯c+慘+=牧*pb++攻;}順序次存儲累結(jié)構(gòu)鑒的優(yōu)膊缺點優(yōu)點邏輯莖相鄰技,物次理相浴鄰可隨腹機存卻取任護一元含素存儲險空間拆使用烈緊湊缺點插入禁、刪弊除操世作需瘡要移兔動大脖量的炎元素預(yù)先燈分配建空間旋需按倉最大肥空間鞋分配崗,利穩(wěn)用不香充分2.視3線性查表的酬鏈?zhǔn)斤L(fēng)表示障和實矩現(xiàn)線性嚴(yán)表的枝順序斬表示祖的特惑點是礎(chǔ)用物逢理位歇置上昂的鄰較接關(guān)顧系來扁表示是結(jié)點阿間的糖邏輯方關(guān)系坦,這條一特晃點使惑我們電可以由隨機翼存取書表中臟的任黑一結(jié)纏點,寸但它盈也使腳得插入觀和刪披除操礙作會響移動泊大量碧的結(jié)位點.為避娘免大杠量結(jié)搖點的貞移動睛,我悟們介遵紹線鈴性表尤的另見一種艇存儲餃方式飲,鏈孕式存遞儲結(jié)霞構(gòu),望簡稱芬為鏈表(Li菠nk熟ed須L盲is橡t)筑。結(jié)點榴形式學(xué):其中:da沈ta域是進數(shù)據(jù)饒域,咳用來煤存放硬結(jié)點藥的值民。ne薦xt是指墓針域垃(亦拔稱鏈岸域)少,用頑來存斜放結(jié)礎(chǔ)點的漿直接崗后繼竄的地披址(做或位害置)奴。特點容:鏈虎表正畝是通純過每臺個結(jié)肯點的笨鏈域蔽將線炎性表杰的n個結(jié)岡點按盲其邏舊輯次捕序鏈絕接在掀一起礦的。datanexta1a2an^…...定義膜形式ty阿pe采de長fst津ru團ctLN咽od鹿e{el攔em懶ty瞎peda搬t(yī)a;st敞ru當(dāng)ctLN意od刑e*ne償xt;}LN林od荷e,刺*Li窯nk泄Li逐st;2.屬3.騎1線性愈鏈表一、艦基本幫概念役和使裙用單鏈撞表:結(jié)億點中也只含短一個赴指針昌域的美鏈表泛叫~,也例叫單鏈死表注意兇:區(qū)縮慧分指鼻針變亮量和辦結(jié)點乞變量挎這兩乞個不旦同的湖概念。LN亮od銜e是結(jié)重點的寒類型慢,Li轉(zhuǎn)nk仇Li連st是指處向Ln安od欣e類型呈結(jié)點覺的指帥針類跌型。
datanext數(shù)據(jù)域指針域heada1a2an^…...頭指掏針:為增成強程氏序的鼻可讀斷性,使通常挪設(shè)置俊一個始鏈表故的頭指勁針,單鏈弦表可脫以用郊頭指角針的識名字熊來命素名。巾如:扁下面腐鏈表撕可稱仰為表he堆addatanextp結(jié)點(*p)(*p)表示p所指向的結(jié)點(*p).datap->data表示p指向結(jié)點的數(shù)據(jù)域(*p).nextp->next表示p指向結(jié)點的指針域說明競:通常取將標(biāo)灣識鏈花表的頭指正針說擇明為Li尚nk鑒Li考st類型的變覽量,掀如:Li肚nk剖Li相sthe攜ad;當(dāng)he授ad有定押義時禿,NU角LL題,則表鍵示一喪個空進表;第一迎個結(jié)主點的弓地址皮,即街鏈表繪的頭匙指針杰;將指坊向某赴結(jié)點踐的指針旬變量憐說明散為LN畫od聚e*類型,如:LN五od診e*p亦;例如且:p=ma邁ll猾oc協(xié)(s貫iz購eo案f(餓LN留od起e))重;fr暫ee嚼(p花);引用踩方法練習(xí)泥:指賺針賦描值的慘操作指針注指向透結(jié)點p=廁qqp指針共指向銳后繼p=抖q-瓣>n開ex盛t指針升移動p=品p-渡>n礦ex爆tqppppq鏈指惱針改偉接p-俗>n貢ex嫩t寇=q鏈指甜針改歡接后火繼p-紅>n許ex請t所=q晨->熔ne波xtpq練習(xí)游:指滔針賦枯值的喘操作ZHAOQIANSUNLIZHOUWUZHENGWANG^H例陳線訓(xùn)性表(ZH爬AO蓬,今Q饞IA思N吩,達SU無N巾,鋼LI腥,硬Z受HO蘆U增,燦WU狠,ZH漫EN皇G報,寄WA懼NG殿)43131NU密LL3771952數(shù)據(jù)域指針域LIQIANSUNWANGWUZHAOZHENGZHOU存儲地址1713192531374331H頭指雹針……11酸0……13護013壇5……16煩0頭指廊針he憤ad顯1慈6517計0……20杠020屋5…………………h(huán)at200…….……cat135eat170….……matNullbat130fat110…………jat205lat160…………165例1、已邪知線認(rèn)形表擋的鏈奮式表斬示如勁下:飯求該籮線形撇表線性油表:(ba穩(wěn)t,惕ca蓄t,濃ea榆t,朋fa聞t,梨ha初t,ja振t,l習(xí)at茅,m無at畜)batcateatmat^…h(huán)ead二、拐基本峽算法1、建寒立單瞧鏈表動態(tài)止地建怨立單氧鏈表戚的常嫂用方枕法有沃如下簽兩種粱:1)頭插饑法建豆表該方敢法從腥一個愉空表旁開始刺,重郵復(fù)讀體入數(shù)蠟據(jù),宇生成瞇新結(jié)裂點,稱將讀傅入數(shù)叉據(jù)存終放到皇新結(jié)釘點的寒?dāng)?shù)據(jù)鼻域中抓,然膠后將次新結(jié)沃點插姥入到象當(dāng)前貝鏈表圍的表滋頭上泳,直筋到讀姿入結(jié)拍束標(biāo)懲志為招止。St貧at直usCr獅ea偽te能Li覺st(Li洗nk目Li帆st&L)//表長田不定{L=賤NU桂LL雞;//先建竹立一宿個空約的單上鏈表sc癥an控f(津x);wh玻il缸e滅(x辦!方=F表LA撥G)待{p=降(LN仿od驢e*)ma確ll肚oc塞(s震iz愿eo殖f(玩LN向od柱e))牧;//省略尚不成兔功時嚷的語搏句p–件>d史at來a=腥x;躲p–中>n提ex林t=臂L;L=翻p;sc歐an掏f(蝴x);}re攝tu掩rn雀O完K;}//Cr犧ea戀te紀(jì)Li案st∧25∧42187629761825∧421825∧4225∧4225∧在頭勉部插棒入建綠立單俘鏈表2、尾插屋法建遺表頭插任法建菌立鏈造表雖壯然算開法簡武單,黨但生超成的押鏈表敘中結(jié)址點的劍次序伸和輸雨入的散順序的相反栗。若極希望躺二者澤次序牙一致逃,可鄭采用紙尾插鴿法建強表。裕該方件法是渡將新罵結(jié)點勺插入嫁到當(dāng)碧前鏈除表的傘表尾牽上,寫為此漸必須煉增加鐘一個看尾指諷針r,使其衛(wèi)始終烏指向伶當(dāng)前鬧鏈表姑的尾念結(jié)點摟。例:初始退狀態(tài)肯:頭威指針H=許NU落LL,尾指鬼針r=傍NU愧LL存;按線分性表鄭中元悶素的婆順序治依次前讀入欺數(shù)據(jù)杰元素軟,不炮是結(jié)蛋束標(biāo)蓋志時業(yè),申仿請結(jié)螺點,千將新地結(jié)點輪插入敬到r所指新結(jié)點脫的后耳面,廁然后r指向索新結(jié)住點(禮但第粥一個臂結(jié)點胳有所頭不同亂,讀裝者注告意下即面算肥法中厭的有弱關(guān)部放分)抹。在尾宵部插軟入建劑立單幟鏈表H=浩NU賓LL零r=鴨NU卷LL征/*初始謎狀態(tài)躲*/29rH7629rH187629rH25∧42187629rH42187629rH編程配分析羞:如果匙第一餐個生站成的隸結(jié)點聯(lián)是開宣始結(jié)婆點,示將開們始結(jié)圾點插筒入到閣空表沖中,釘是在桶當(dāng)前園鏈表驗的第母一個沾位置蒼上插祝入,疼該位崗置上午的插灰入操薯作和遇鏈表刮中其撈它位婆置上乒的插泰入操蘭作處鴉理是腹不一關(guān)樣的湯,原糊因是和開始輩結(jié)點女的位淺置是俗存放聞在頭鼻指針摟(指叔針變碰量)篇中,假而其浴余結(jié)津點的辮位置閘是在祝其前巧趨結(jié)假點的峰指針汽域中鋪。如果瞎我們決在鏈歲表的痛開始戲結(jié)點狠之前將附加滔一個點結(jié)點叫,并彈稱它彼為頭結(jié)傍點,那包么會瘋帶來冒以下進兩個卵優(yōu)點逢:a、由于鋒開始基結(jié)點炮的位姑置被恥存放棗在頭程結(jié)點跌的指旅針域跌中,咱所以躍在鏈她表的零第一搏個位涼置上宮的操平作就滴和在欄表的螞其它賴位置初上的由操作環(huán)一致膊,無陷需進竭行特側(cè)殊處艱理;b、無論旬鏈表機是否廚為空核,其貞頭指籍針是過指向逆頭結(jié)都點(甲空表零中頭拆結(jié)點鑼的指帶針域溫為空粱),挺因此督空表款和非依空表利的處碧理也剪就統(tǒng)地一了。頭結(jié)趟點:在登單鏈爪表第帖一個達結(jié)點喪前附快設(shè)一積個結(jié)罰點線性以表為請空:頭結(jié)氧點指寸針域散為空;heada1a2頭結(jié)點an^…...head空表^帶頭療結(jié)點航的算榜法如勇下:St許at蛇usCr脫ea部te命Li譽st繳_L(Li悟nk畫Li驅(qū)st&L即){怎L=獸(Li元nk事Li日st于)m周al析lo戰(zhàn)c(流si既ze跨of辜(L險No妨de))削;L-途>n嫩ex束t=浩NU州LL杏;系r=寬L;sc剃an唯f(鎮(zhèn)&x);wh溉il革e坡(x奇!=包fl湖ag猜){眉p=ma員ll源oc強(s繼iz艦eo號f(膚LN筍od杏e))奏;助p籍->薄da握ta狠=x煩;p-婚>n綠ex貪t=折r-爽>n至ex概t艙;色r級->僻ne怖xt毒=p途;r=社p;聰//縮慧r指向耐新的前尾結(jié)較點sc漸an私f(芬&x);冬}re經(jīng)tu宋rn宗OK頓;剃}練習(xí)納:如棉果不罪帶頭結(jié)點舒算法端如何臺設(shè)計St愉at丹usCr強ea住te塌Li頭st務(wù)_L(Li鼠nk餅Li盈st&L慌)創(chuàng)//無頭汁結(jié)點{L=喪NU構(gòu)LL赴;諷r=碗NU鼓LL隆;sc栽an洗f(封&x我);wh堅il裹e仰(x朋!=舒fl捷ag甘)爬{p=ma陽ll自oc荷(s疏iz啟eo蘇f(怠LN豪od太e))周;騎p拜->隸da掀ta促=x鑄;if助(L善==頃NU支LL共)度L哭=p歸;噴/默/第一崗個結(jié)伏點的駕處理el反se尺r-姻>n盆ex邁t=湯p;宿/用/其它死結(jié)點圍的處藍理r=逆p;剩//曬r指向玩新的另尾結(jié)虎點sc莊an躍f("%d",&籌x)練;指}if喜(俯r腰!=牌NU佩LL哈)箭r紫->倉ne遇xt議=N多UL口L;度/溉/對于胸非空謝表,政最后煉結(jié)點畫的指嗽針域脊放空郊指針re唉tu亮rn膝O扁K;愿}上述朱算法終里動查態(tài)申島請新練結(jié)點俗空間濁時未痰加錯羞誤處臉理,敗可作唯下列龍?zhí)幚碜h:p=武(Li柱nk噴Li山st)ma讀ll妖oc五(s齊iz貓eo望f(頓LN刺od震e))if筆(p彩==合NU毒LL緒)er狐ro咱r(即〝N奏o續(xù)sp暫ac窮e泛fo喘r誦no飯de費c仿an烤b燥e夫ob貢ta獨in蕩ed刪〞)然;re癢tu罰rn吃E吹RR淺OR慎;以上霞算法泄的時角間復(fù)焦雜度海均為O(抓n)紫。2、查找潑運算1)按錘序號心查找在鏈加表中貌,即協(xié)使知屑道被形訪問敗結(jié)點妄的序斤號i,也不復(fù)能象鑄順序插表中卡那樣適直接擠按序疊號i訪問蔥結(jié)點翻,而罷只能未從鏈晶表的現(xiàn)頭指撿針出稅發(fā),雞順鏈任域ne盲xt逐個失結(jié)點屠往下社搜索促,直寒到搜謠索到際第i個結(jié)援點為繪止。戶因此刻,鏈表爹不是臘隨機尼存取驚結(jié)構(gòu)。設(shè)單辛鏈表雁的長濱度為n,要查朝找表蔽中第i個結(jié)傻點,譽僅當(dāng)1≦i≦節(jié)n時,i的值扔是合南法的開。但蘭有時盾需要懲找頭棚結(jié)點混的位角置,豬故我說們將斷頭結(jié)得點看肺做是充第0個結(jié)朽點,昏其算邁法如云下:St檢at副usGe議tE升le編m(Li摩nk肚Li繳stL,in份ti,咐El灣em浸Ty敏pe&e片){p=楊L-滔>n輩ex溪t;壞j嚷=1初;wh兔il磚e(商p鴨&稈&抖j<電i)蠢{p=年p–妄>n棉ex其t;j+眠+;盯}if法(丙!p右||統(tǒng)j扮>i什)re肢tu則rn酷ER返RO味R;e=澆p-務(wù)>d串a(chǎn)t件a;re先tu君rn獻OK吹;膛}La1a2頭結(jié)點an^…...2)查幸找元啞素操拳作(練習(xí))LN鑼od鼻e*Lo朝ca泉te才El客em_L粥(Li印nk親Li許stL,El塞em枯Ty花pee瓶)懶{//在L所指報的鏈萍表中談查找狀第一毅個值削和e相等堤的數(shù)書據(jù)元控素,//若存賽在,嘩則返房誠回它疊在鏈淚表中啟的位信置,寨即指袍向該莫數(shù)據(jù)蠟元//素所均在結(jié)則點的暗指針方;否旁則返瓦回NU放LLp=章L;wh伏il杏e悅(古p萍&&場p始->巴da痛ta債!交=夠e鬼)瞎p畢=p批->為ne矛xt瘡;re擋tu胖rn蠻p者;房誠}侵/貌/Lo剃ca共te酷El衰em_LLN徑od墻e*Lo閥ca睬te晶No逼de差(L箏in測kL萄is循the舟ad猴,El護em祥Ty吐peke叨y){蔥p餅=h輩ea膠d–稿>n上ex播t;wh瓣il港e(稻p量&卷&識p–滑>d盈at塞a!豈=k獵ey毀)p=斃p–噴>n遇ex虧t;re娛tu累rn朵p儀;}該算掀法的拾執(zhí)行評時間泳亦與物輸入垃實例最中的臟的取垃值ke史y有關(guān)蓬,其扒平均固時間屈復(fù)雜棟度的才分析督類似勝于按段序號紫查找糊,也洲為O(軟n)黃。heada1a2頭結(jié)點an^…...同樣第是按踢值查找爪兩者釣有何不同pabes插入添:在平線性綱表兩努個數(shù)協(xié)據(jù)元尖素a和b間插膚入e,已知p指向as-蒼>n深ex曉t=艙p-擋>n課ex盯t;p-根>n剖ex繩t=烤s;3、插攔入運潔算插入核運算威是將宣值為e的新定結(jié)點敘插入立到表要的第i個結(jié)臘點的釀位置唯上,各即插少入到ai-壁1與ai之間賽。因鋤此,數(shù)我們帥必須閱首先計找到ai-鉤1的存拌儲位虛置p,然后遼生成移一個御數(shù)據(jù)著域為x的新員結(jié)點妹*p,并令泰結(jié)點瓜*p的指惱針域唯指向炒新結(jié)效點,圖新結(jié)漆點的選指針領(lǐng)域指脖向結(jié)黨點ai。從而姜實現(xiàn)憤三個圖結(jié)點ai-趁1,x和ai之間莫的邏逗輯關(guān)因系的黎變化考,插鄙入過犯程如埋:具體染算法束如下尸:St照at何usLi厭st只In貴se址rt篩_L傳(L核in疼kL由is潮t&L相,El肝em弟Ty犬pee,in脾ti){專p=史L;尾j=測0;//頭結(jié)串點wh增il盤e剝(p謀&&類j<辦i-衣1)禍{血p=軍p-蘿>n絕ex昌t;鹽i+飄+;奏}if扣(!旗p|鈔|燒j>脖i-扒1)濫{er允ro恥r(球〝p版os濟it峽io黎n禽e付rr榆or陽〞)激;罷r墓et乎ur閑n(介ER扯RO譽R)漢;}s=砌(Li懶nk打Li鵝st)ma粥l(xiāng)l段oc拖(s斷iz時eo賽f(突LN執(zhí)od脾e))乖;s–籌>d糖at咳a=令e;預(yù)s–化>n聞ex基t=只p–集ne距xt醬;p–扒>n庫ex材t=管s;re篩tu伍rn錫O凝K}//算法2.愁94刪除葵運算刪除句:單郵鏈表暢中刪媽除b,設(shè)p指向apabcp-茅>n更ex尾t=勉p-優(yōu)>n渡ex諒t-編>n付ex塌t;設(shè)鏈擔(dān)表的粥長度飽為n,合法染的插淺入位陡置是1≦i≦抄n+查1。當(dāng)i=繁1時,柱要找劉到的芝是頭脈結(jié)點開,當(dāng)i=膨n+步1時,劉應(yīng)該乎找到糠的是墻結(jié)點an。因此疏,算碧法的腿時間濾主要喜耗費仆在查娛找操北作上串,故戚時間踩復(fù)雜塑度亦桑為O(歉n)訴。具體勸算法指如下:批算法2.貝10St建at攻usLi漿st仁De吸le央te河_L雞(L情in蛛kL屠is幅t&L飲,in親ti,El金em擴Ty斃pe&e載){p=根L;噸j乓=0感;wh平il仁e候(p弓->屬ne旦xt剛&烈&尋j<辨i-卸1)股{飲p=娃p-茂>n臭ex牛t盾;+垃+j托;}if扛(!盯(p笑->括ne鳳xt熄|團|j哥>i柏-1渴)茄re貴tu辯rn誘E室RR哈OR辦;q=明p–注>n黃ex廳t;彩p葵–>搶ne排xt攜=q世–>判ne拖xt催;e=旺q-鴉>d仗at貝a;釋fr濟ee族(q蘋);re酒tu值rn缺O(jiān)慕K;困}顯然偵此算絹法的蓋時間貍復(fù)雜財度也放是O(半n)按。從上麗面的殲討論盆可以標(biāo)看出宮,鏈尋表上耳實現(xiàn)配插入框和刪開除運走算,扁無須采移動爺結(jié)點慎,僅俱需修叮改指琴針。單鏈附表特礎(chǔ)點它是屑一種動態(tài)鵝結(jié)構(gòu),整級個存罪儲空夫間為頭多個設(shè)鏈表碌共用不需層預(yù)先藍分配空間指針讓占用額外存儲芝空間不能另隨機鉗存取,查額找速慮度慢練習(xí)撓與分區(qū)析:勞將兩慌個非伙遞減施排列矩的單斷鏈表燦歸并智為一仇個新輕的非記遞減摩排列銳的單襪鏈表綁(算隆法2.嫂12掠)先回制顧算法阻2.淺2已知懷線性和表LA和線灰性表LB中的拌數(shù)據(jù)鈴元素蝴按值爐非遞廳減有嘴序排夕列,瓦現(xiàn)要前求將LA和LB歸并襖為一遷個新案的線肅性表LC犧,且LC中的給元素去仍按查值非股遞減懷有序注排列部。此問群題的汪算法壓如下泥:vo裹idme率rg懶el陡is蘭t(l拔is究t杯la窩,l蹦is渾t挨lb金,l傷is悶t邪&lc){in宣it愉li澡st(lc);i=攤j=咸1;企k=棚0;la歉_le巴n=li格st澡le紀(jì)ng擇th(l構(gòu)a)玻;lb刃-le游n=li墊st仍le競ng萍th(l隨b)希;wh富il薄e(線(i弟<=湊la撒_le陷n)&臂&(緒j<邪=l乘b_le呆n))針{ge粗te內(nèi)le定m(l燒a,泳i,ai);ge囑te糟le捕m(l末b,篩j,bj);if賄(ai<=bj){li扔st袍in晉se旬rt(lc,+幣+k為,ai);廉++泛i;少}el繡se者{li稅st隨in多se井rt(lc,+員+k菜,bj);怖++拖j;魄}}wh泄il嫌e(梯i<筑=l鼻a-le蕉n){ge長te光le哭m((發(fā)la術(shù),i跌++自,ai);li萍st濃in涉se稱rt(lc,+傘+k悲,ai);}wh瞞il撲e(咬j<循=l遺b-le匯n){ge促te武le魯m((恭lb料,j邪++度,bj);li犯st丹in缺se是rt(lc,+引+k摸,b更i)稈;}}數(shù)據(jù)倚的運采算是拖定義腸在邏匆輯結(jié)磁構(gòu)上醬的,令而運雖算的疏具體估實現(xiàn)穩(wěn)則是胡在存階儲結(jié)釣構(gòu)上穩(wěn)進行頁的。順序脹表的怎實現(xiàn)vo哄idme利rg省el修is悅t_s醒q(sq植li答atla色,sq幼li彩atlb捕,sq狡li插at&lc){掌pa落=l杜a.el禮em;pb=l鬧b.el蹈em;lc.li稍st篩si冠ze=lc.l珠en扣gt筒h=危la權(quán).l執(zhí)en聲gt只h+快lb竟.l折en材gt蝕h;pc夢=lc.el李em=(el娛em壁ty沫pe*)ma允ll搖oc(lc.li鋤st脂si房誠ze*si懶ze欲of(el著em武ty企pe))鑒;if壺(滔!lc.el規(guī)em)旺e糧xi首t(爹OV孟ER喉FL遲OW豪);pa血_l事as韻t=查la集.e驅(qū)le切m+勸la顆.l厭en俊gt點h-杏1;pb_l斑as截t=抽lb黑.e減le持m+息lb找.l惑en已gt糟h-晉1;wh騾il間e計(p像a<追pa儲_l晶as裂t稱&羨&pb<pb_l友as做t)萌{if歌(雅*季pa略<=跑*pb)楊*p仍c+再+=醒*p逆a+鴿+;el去se娘*p黑c+砌+=露*pb++攝;}wh栽il為e毒(星pa駕<=橋pa駁_l斃as常t)弄*身pc就++箏=*桐pa蓄++憲;wh撤il交e虎(pb<=pb_l躺as每t)書*p蕩c+矛+=掙*pb++辮;}鏈表告的實沃現(xiàn)vo佩idme罷rg迫el去is借t_l勒(li夕nk演li餐st&l富a,li疏nk流li喉st&l班b,li炊nk籃li舊st&lc){然pa林=l律a-蒸>n昨ex吳t銹;pb=l淹b-唉>n埋ex姜t;lc=p認(rèn)a=軋la夏;wh夾il跑e蓋(p葡a例&&pb)if捏(笛p決a-蹄>d涼at替a便<=pb->艷da懲ta娛){銜pc醋->初ne產(chǎn)xt傲=p益a;灶pc暮=p崇a;揭pa谷=p食a-相>n證ex獎t;循}el譽se篇{p怖c-倍>n朽ex便t=pb;桿pc捕=pb;pb=pb->減ne裕xt差;咱}pc隊->擴ne欲xt象=舅pa計?p裂a:pb;fr披ee饞(l險b)顛;訊}靜態(tài)性鏈表定義些如下尺:#de帶fi頁ne懷MA飯XS惡IZ板E滴10承00漆/那*足夠支大的戰(zhàn)數(shù)*/ty爺pe溜de灣f溫s療tr生uc哪t{el啞em今ty掘peda素ta芹;in綿tcu瓜r;}頂co鄙mp凱on股en嗓t,Sl珠in辣kN主od團e[M慘AX牧SI碼ZE寒];這種斧鏈表咬的結(jié)能點中浮也有震數(shù)據(jù)宅域da業(yè)ta和指菌針域cu即r,與前席面所準(zhǔn)講的累鏈表霞中的釀指針奮不同農(nóng),該脖指針號是結(jié)阿點的聚相對綿地址(數(shù)組宮的下四標(biāo)),稱寄之為靜態(tài)皇指針,這悟種鏈喉表稱順之為靜態(tài)污鏈表??罩富樣?表示,表明頸表尾鉛。數(shù)組澡的第尼零分呆量看圖作頭饒結(jié)點斤。da耳ta位cu抖r012345三錘靜態(tài)清鏈表1zhao3li5qian4sun2zhou0與鏈抬表的脅主要見區(qū)別動態(tài)鏈表靜態(tài)鏈表結(jié)點是系統(tǒng)分配用戶事先定義結(jié)點地址是與該類型同類型的指針表示數(shù)組下標(biāo)存儲地址不一定連續(xù)地址連續(xù)與線艘性表勻的主妖要區(qū)測別:使物理況地址輝連續(xù)墾,但源邏輯鄭結(jié)構(gòu)咳不一絨定連璃續(xù)。2.狠3.刪2循環(huán)旅鏈表(ci跪rc維ul賊ar烘l朝in過ke件d李li炕st皂)循環(huán)或鏈表是表病中最錄后一監(jiān)個結(jié)河點的堵指針濱指向斤頭結(jié)舍點,憑使鏈紐奉表構(gòu)彼成環(huán)較狀特點:頭尾痛相接竟無須遭增加域存儲危量,破僅對殘表的悄鏈接紋方式回稍作哪改變閱,卻胸使得從表背中任頃一結(jié)棉點出繡發(fā)均穩(wěn)可找梅到表虜中其棟他結(jié)哄點,系提高茅查找管效率僻,更加弟方便喂靈活。帶頭結(jié)彩點的綿循環(huán)點鏈表單循爪環(huán)鏈坐表:在單搬鏈表取中,針將終闊端結(jié)煌點的環(huán)指針險域NU銹LL改為驢指向悶表頭擋結(jié)點餡的或平開始炭結(jié)點沃,就蠢得到肚了單荷鏈形爺式的渾循環(huán)俱鏈表犬,并墾簡單刻稱為欺單循棟環(huán)鏈蠻表。hh空表操作青與單伶鏈表悲基本濱一致售,循商環(huán)條膨件不詠同單鏈毒表p或p-序>n替ex題t=耀=N手UL銀L循環(huán)蜂鏈表p-卡>n傍ex躁t=活=H練習(xí)豎:兩個宣用尾積指針棵標(biāo)識滋的單脹循環(huán)脂鏈表早的連框接he緩ad所ahe奸ad屠b
heada->next=headb->next->nextfr療eehe界ad蘿b->吹ne證xt鹽=he毛ad借a->撥ne根xt顛?例、棉在鏈某表上探實現(xiàn)俊將兩趟個線柳性表(a1,a2,a3,…妻an)和(b1,b2,b銜3,菌…bn)鏈接叫成一求個線濱性表慶的運索算。Li庸nk剩Li低stco星nn區(qū)ec眨t(史Li晴nk扁Li燥sthe毅ad沿a,Li想nk大Li長sthe屢ad緣瑞b)//he協(xié)ad螺a、he森ad弟b均為咬用尾金指針睬表示涂的單頃循環(huán)兩鏈表{p=he塞ad終a—>怖ne拒xt慮;he隙ad縫a—>察ne取xt編=(he雁ad播b—n蜻ex激t)填—>刷ne牢xtfr召ee眼(h細ea源db—>昨ne始xt嫁);he此ad盾b—>掀ne邪xt顧=p腹;re涂tu跑rn所(h喝ea雪db);欄}2.位3.龍3雙鏈坦表(do陣ub本le曉L那in鎖ke親d扶li涼st已)雙向儲鏈表(do斷ub榆le抵l滔in鞋ke掌d貌li挪st孔):在單墳鏈表樓的每肺個結(jié)姑點里揉再增咽加一途個指牛向其漲直接鉛前趨受的指姻針域pr顆io此r。這樣擴就形昆成的狗鏈表庸中有主兩個帥方向果不同檢的鏈餓,故常稱為貍雙向鬼鏈表爪。形法式描延述為街:ty醒pe蛾de廊fst缺ru墳ctDu陷LN壞od蔑e{El灘em宮Ty消peda攻ta償;st攤ru耕ctDu軍LN登od堅e*p右ri跡or饒,*榜ne敗xt俘;}Du掀LN誦od廁e,獸*Du讓Li樓nk礦Li群st;Du探Li陸nk壞Li仰sthe吵ad率;priordatanextpriorbnextprioranextL空雙向循環(huán)鏈表:
非空雙向循環(huán)鏈表:LAB和單憂鏈表客類似魔,雙縱鏈表沿一般縫也是劫由頭委指針梁唯一許確定蝦的,屢增加旋頭指勉針也普能使牛雙鏈顯表上每的某案些運繁算變袋得方狠便,土將頭俱結(jié)點僻和尾皇結(jié)點雨鏈接認(rèn)起來你也能炎構(gòu)成臥循環(huán)趴鏈表慢,并凱稱之懶為雙向旬循環(huán)陣鏈表劑。設(shè)指位針p指向鳥某一模結(jié)點愛,則荷雙向真鏈表蟲結(jié)構(gòu)鹽的對佛稱性鼓可用繡下式型描述患:(p—帥>p橋ri貿(mào)or腳)—純>n臉ex澆t=將p=駁(p喚—>床ne梁xt夸)—稱>p妻r(nóng)i野or即結(jié)介點*p的存位儲位銳置既裙存放姓在其末前趨碌結(jié)點恐*(p—守>p上ri濃or誘)的直骨接后法繼指偶針域乎中,枯也存測放拉在它涂的后塞繼結(jié)漢點*(p—縣>n剛ex涼t)的直渠接前判趨指溪針域盒中。bcapSt磚at創(chuàng)usin題s_乒du鉗li就st雹(D捆uL或in逼kL暫is旁tp,其El凝em奴Ty跳pee){s=膨(Du稅Li泰nk伏Li掩st)ma言ll敵oc課(s背iz籠eo北f(否Du濱LN采od旅e))紗;s-渣>d壟at絮a=由e;s-裕>p罵ri質(zhì)or汁=p暈->津pr沿io棋r;p-博>p燭ri勒or藝->筒ne等xt喝=s自;s-繼>n固ex熊t=留p;p-逢>p剖ri收or遷=s艦;逮r謎et欄ur捆n車OK裹;}算法宇描述算法古評價哄:T(國n)渴=O鹿(1切)xSbaP插入在:在結(jié)晨點p前插封入數(shù)鐵據(jù)域晝?yōu)閤的結(jié)孟點bcaPSt衛(wèi)at筑usde惡l_縫du哭li翠st忘(D蛇uL稍in割kL向is朱t&L擋,in鏡ti,El揮em青Ty放pe&黃e){適i浩f胞(!崖(p白=Ge洽tE挑le嗽mP乎_d少ul除(L跡,i))艇)re小tu茅rn寄E晶RR搜OR棍;e=挑&p膝->臺da君ta多;p-坦>p吳ri將or壤->絮ne減xt眠=p伍->眉ne網(wǎng)xt愚;p-訊>n芹ex違t-中>p茄ri僚or懂=p谷->泰pr逝io勤r;fr抵ee絮(p勇);替re心tu顧rn蟲OK朋;}刪除算法續(xù)描述算法笛評價詠:T(殘n)底=O林(1好)p-戲>p味ri惜or騎->掩ne降xt督=p暗->盞ne冰xt春;p-迷>n肥ex巡壽t-舌>p怕ri副or奸=p椅->慰pr厚io垃r;小結(jié)歡:如何廟選取詞存儲望結(jié)構(gòu)配呢?源通常叫有以羅下幾蘆點考忙慮:1.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑施工安全培訓(xùn)課程定制與實施合同
- 2025年度建筑安裝工程承包合同綠色施工稅率減免政策
- 2025年度城市更新回遷房屋買賣協(xié)議范本
- 2025年度建筑工程竣工驗收勞務(wù)作業(yè)分包合同
- 2025年中國商務(wù)旅游行業(yè)市場全景評估及投資前景展望報告
- 2025年桐木單板層積材項目投資可行性研究分析報告
- 2025年度山地公路橋梁修復(fù)工程合同范本
- 二零二五年度教育培訓(xùn)機構(gòu)勞務(wù)承包管理協(xié)議3篇
- 2025年特色商業(yè)門面租賃合同空白模板(含商業(yè)物業(yè)維護協(xié)議)3篇
- 2025年度建筑防水材料采購合同范本
- 幼兒園設(shè)施設(shè)備安全教育
- 廢舊保溫棉處置合同范例
- 《人工智能簡述》課件
- 《軌道交通工程盾構(gòu)施工技術(shù)》 課件 項目5 盾構(gòu)隧道防水施工
- 2024年數(shù)據(jù)編織價值評估指南白皮書-Aloudata
- 四川省算力基礎(chǔ)設(shè)施高質(zhì)量發(fā)展行動方案(2024-2027年)
- 人教版八年級英語上冊Unit1-10完形填空閱讀理解專項訓(xùn)練
- 護理工作中的人文關(guān)懷
- 完整液壓系統(tǒng)課件
- 2024年山東省青島市中考道德與法治試題卷(含答案及解析)
- 芯片設(shè)計基礎(chǔ)知識題庫100道及答案(完整版)
評論
0/150
提交評論