第二章線性表2_第1頁
第二章線性表2_第2頁
第二章線性表2_第3頁
第二章線性表2_第4頁
第二章線性表2_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第一章回顧1、程序設(shè)計和算法、數(shù)據(jù)結(jié)構(gòu)的關(guān)系2、數(shù)據(jù)結(jié)構(gòu)討論的內(nèi)容3、數(shù)據(jù)結(jié)構(gòu)的定義4、抽象數(shù)據(jù)類型的概念5、算法及其度量1練習(xí)設(shè)n為正整數(shù)。試確定下列各程序段中前置以記號@的語句的頻度i=1;k=0;

while(i<=n-1) {

@k+=10*i;

i++;

}

n-12i=1;k=0;

do{

@k+=10*i;

i++;

}while(i<=n-1);n-1,但n=1時特殊,是1次3x=n;y=0;//n是不小于1的常數(shù)

while(x>=(y+1)*(y+1)) {

@y++;

}4x=91;y=100;

while(y>0){

@if(x>100){x-=10;y--;}

elsex++;

}

11005數(shù)據(jù)結(jié)構(gòu)部分的起點:什么是線性結(jié)構(gòu)?6第1章緒論第2章線性表第3章棧和隊列

第4章串第5章數(shù)組第6章樹和二叉樹

第9章查找第10章排序數(shù)據(jù)庫部分目錄7線性結(jié)構(gòu)的定義:

若結(jié)構(gòu)是非空有限集,則有且僅有一個開始結(jié)點和一個終端結(jié)點,并且所有結(jié)點都最多只有一個直接前趨和一個直接后繼??杀硎緸椋海╝1,a2,……,an)

簡言之,線性結(jié)構(gòu)反映結(jié)點間的邏輯關(guān)系是

的。特點①只有一個首結(jié)點和尾結(jié)點;特點②除首尾結(jié)點外,其他結(jié)點只有一個直接前驅(qū)和一個直接后繼。線性結(jié)構(gòu)包括:線性表、堆棧、隊列、字符串、數(shù)組等,其中最典型、最常用的是------線性表一對一(1:1)8第2章線性表2.1線性表的類型定義2.2線性表的順序表示和實現(xiàn)2.3線性表的鏈?zhǔn)奖硎竞蛯崿F(xiàn)2.4應(yīng)用舉例9(a1,a2,…ai-1,ai,ai+1,…,an)2.1

線性表的定義:用數(shù)據(jù)元素的有限序列表示n=0時稱為數(shù)據(jù)元素線性起點ai的直接前趨ai的直接后繼下標(biāo),是元素的序號,表示元素在表中的位置n為元素總個數(shù),即表長。n≥0空表線性終點10(A,B,C,D,……,Z)學(xué)號姓名性別年齡班級012006013112柳華兵男19電子信息工程200604班012006013211陳是男19電子信息工程200605班012006013309鄒禮見男19電子信息工程200606班012006013423劉述博男19電子信息工程200607班012006013526鄭歡男19電子信息工程200608班:::::例2分析學(xué)生情況登記表是什么結(jié)構(gòu)。分析:數(shù)據(jù)元素都是同類型(記錄),元素間關(guān)系是線性的。分析:

數(shù)據(jù)元素都是同類型(字母),元素間關(guān)系是線性的。注意:同一線性表中的元素必定具有相同特性!例1分析26個英文字母組成的英文表是什么結(jié)構(gòu)。11“同一數(shù)據(jù)邏輯結(jié)構(gòu)中的所有數(shù)據(jù)元素都具有相同的特性”是指數(shù)據(jù)元素所包含的數(shù)據(jù)項的個數(shù)都相等?!潦侵父髟鼐哂邢嗤臄?shù)據(jù)類型試判斷下列敘述的正誤:12線性表的抽象數(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}

基本操作:{結(jié)構(gòu)初始化}

{銷毀結(jié)構(gòu)}

{引用型操作}{加工型操作}}ADTList13線性表的抽象數(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}

基本操作:

{結(jié)構(gòu)初始化}

InitList(&L)

操作結(jié)果:構(gòu)造一個空的線性表L。

{銷毀結(jié)構(gòu)}

DestroyList(&L)

初始條件:線性表L已存在。

操作結(jié)果:銷毀線性表L。14{引用型操作}

ListEmpty(L)

初始條件:線性表L已存在。

操作結(jié)果:若L為空表,則返回TRUE,否則返回FALSE。

ListLength(L)

初始條件:線性表L已存在。

操作結(jié)果:返回L中元素個數(shù)。

PriorElem(L,cur_e,&pre_e)

初始條件:線性表L已存在。

操作結(jié)果:若cur_e是L中的數(shù)據(jù)元素,但不是第一個,則用pre_e返回它的前驅(qū),否則操作失敗,pre_e無定義。

NextElem(L,cur_e,&next_e)

初始條件:線性表L已存在。

操作結(jié)果:若cur_e是L中的數(shù)據(jù)元素,且不是最后一個,則用next_e返回它的后繼,否則操作失敗,next_e無定義。15Ge持tE筋le鴨m(疼L,京i盤,華&e路)初始剝條件葵:線沒性表L已存小在,1≤嘩i≤已Le柱ng填th索Li可st鞏(L費)。摩操作介結(jié)果潛:用e返回L中第i個元拜素的等值。Lo致ca須te芝El捉em(形L,賢e塘,疫co仰mp炕ar捎e(決)君)初始偽條件孝:線蛇性表L已存襪在,c集om荒pa研re箏(棍)是元父素判檢定函抵?jǐn)?shù)。旬操旬作結(jié)廁果:景返回L中第1個與e滿足尸關(guān)系co釣mp擦ar絕e(微)的元棋素的葛位序濟(jì)。若叢這樣芳的元懷素不箭存在擋,則袍返回蛋值為0。Li醫(yī)st君Tr踢av單er洋se甘(L,性vi申si攜t(聯(lián))揪)初始搜條件亞:線滴性表L已存蠢在,vi耍si績t(袋)為元償素的糧訪問子函數(shù)做。洽操作匯結(jié)果合:依宮次對L的每載個元蒜素調(diào)翅用函克數(shù)vi仆si足t(堡)。稀一煮旦vi尤si洗t(駁)失敗典,則汁操作娃失敗悉。16{加工勢型操通作}Cl彎ea磚rL廳is囑t(想&L影)初始碎條件輩:線心性表L已存扒在。賊操作汗結(jié)果笨:將L重置轎為空求表。Pu罰tE艇le平m(乖&L于,堡i,穴&靜e伍)初始執(zhí)條件田:線貝性表L已存踏在,1≤檔i≤踢Le蹦ng價th詠Li洗st共(L正)。獲操臘作結(jié)悟果:L中第i個元邊素賦醉值同e的值嶼。Li攻st由In月se閱rt(薦&L丸,墻i,叼e憐)初始喚條件敬:線漿性表L已存火在,1≤佩i≤仇Le銜ng將th嗽Li介st愿(L推)+機(jī)1。拴操帥作結(jié)光果:食在L的第i個元坑素之前插入垮新的旦元素e,L的長收度增1。Li瓦st歌De部le太te(貢&L呆,甜i,鋼&粗e薦)初始班條件犁:線濟(jì)性表L已存肉在且顛非空棉,1≤方i≤李Le黃ng軟th廊Li至st廉(L旱)。須操兔作結(jié)陶果:療刪除L的第i個元朱素,剪并用e返回想其值載,L的長琴度減1。}計AD火T盞Li殲st17利用哄上述協(xié)定義邪的線案性表席。可碌以完隱成其著他更蛇復(fù)雜把的操決作。18例2-自1已知都集合A和B,求虹兩個剩集合撥的并嬸集,海使A=A∪欠B,且B不再灑單獨住存在歲。分析:以線拜性表LA和LB分別攜表示蠻集合A和B,對平集合B中的倆所有考元素筆一個刑一個胡地檢陽查,夾將存濫在于席線性蜘表LB中而公不存結(jié)在于蜂線性宇表LA中的海數(shù)據(jù)討元素達(dá)插入肚到線演性表LA中去類。具體筑操作鈔步驟毛為:1.從慕線性父表LB中取額出一筑個數(shù)教據(jù)元蘭素;Ge堤tE吊le機(jī)m(裁Lb縫,i仔,e);2.依永值在財線性鞏表LA中進(jìn)霸行查唇詢;Lo污ca熊te近El尋em錢(L稿A,之e,功eq黃ua臂l(戲))3.若笛不存割在,完則將呈它插腥入到LA中。Li胡st趟In金se柱rt(守LA彎,壞n+脹1,攏e偏)重復(fù)封上述拋三步汗直至LB遍歷樂止。19對應(yīng)級的線奏性表勵基本武操作腐:1.Ge月tE奸le邀m(張Lb喊,i總,e);2.Lo盒ca題te策El軟em(擔(dān)LA疏,鋤e,勉e問qu芝al均()爽)妙;放3叼.Li料st畜In俊se擔(dān)rt(膝LA載,建n+盈1,豬e茶)vo捏idun鵝io難n(花Li弱st&L推A,養(yǎng)L除is撕t柿&L浸B){La姓_l倉en=Li巴st歸Le匙ng偏th側(cè)(L刮A);//求得呈線性孔表LA的長徹度Lb奸_l況en=Li于st睬Le侄ng鬧th襖(L芹B);//求得獅線性晨表LB的長胡度fo愿r(艷i=1仔;i革<=Lb扎_l刪en槳;i++奮){Ge壁tE際le壁m(偶Lb釣,i棟,e);構(gòu)//取LB中第i個數(shù)衫據(jù)元假素賦冒給eif逐(鄭!Lo脈ca遲te誦El倍em寒(L羞A,析e,額eq哭ua遣l(渡))Li濫st煙In歐se恒rt俱(L獄A,荷++工La脈_l汽en銜,e);聞//要LA中不護(hù)存在漏和e相同業(yè)的數(shù)牢據(jù)元霉素,烈則插歡入之}De霉st務(wù)ro菠yL跳is姿t(錦LB);//銷毀饑線性堅表LB}斯//竹u廳ni蠶on20[例2]有順?biāo)樾虮鞟和B,其元冒素均贊按從乞小到禿大的沈升序耗排列猜,編堆寫一瞇個算貴法將米它們爹合并構(gòu)成一吩個順狂序表C,要求C的元遞素也疑按從冒小到眾大的芳升序轉(zhuǎn)排列翻?;就此悸纷阂来吻呙鐰和B的元鍛素,拌比較牲當(dāng)前臺元素ai和bj:if賠(a顛i<bj)燈{ai賦給Ck飄;螞i+繳+;餡k+旱+;}el暴se思{bj賦給Ck升;壤j+閱+;塘k+擇+;}將未雕完的站那個易順序紋表中倍余下宮部分釀賦給C;21vo牌idMe脈rg賤eL擾is奮t(褲Sq只Li春stLa貸,S愉qL西is部tLb窄,S艘qL感is廈t*Lc)短/*算法2.臺2育*/{驚/*已知營線性道表La和Lb中的腿數(shù)據(jù)軌元素賴按值犬非遞筑減排壘列。慈*//*歸并La和Lb得到垂新的膜線性忠表Lc,Lc的數(shù)策據(jù)元固素也芒按值膜非遞棄減排隔列瘦*/in嚇ti=箏1,葬j=艱1,南k=搖0;In藏it弱Li選st善(L責(zé)c);/*創(chuàng)建嚼空表Lc*/La斥_l劫en=Li診st筐Le半ng業(yè)th私(L誦a);Lb張_l還en=Li墾st理Le說ng卡th壯(L桶b);//依次清掃描A和B的元畫素,滅比較掀當(dāng)前垮元素ai和bj:wh兇il御e(牙i<=La辟_l牙en仁&&扒j<=Lb歡_l陜en)沃/*表La和表Lb均非核空亂*/{Ge獸tE彩le心m(聰La女,i寧,&塌ai);Ge但tE捐le置m(鑒Lb托,j致,&汗bj);if怨(a得i<=bj){Li僵st瘋In賞se允rt薪(L娛c,宇++迎k,童ai);坦+離+i效;}el啦se{Li宮st痕In股se胃rt詳(L范c,桶++鉆k,禿bj);低+拴+j全;}}//將未待完的煌那個駛順序聚表中舟余下芒部分止賦給C;/*以下禾兩個wh祝il釋e循環(huán)滑只會糞有一閱個被或執(zhí)行施*/wh晉il臭e(伍i<=La梢_l否en)巴/*表La非空向且表Lb空糧*/{Ge柱tE塌le吧m(數(shù)La啄,i效++狹,&殖ai鐵);需Li墊st棚In慎se鐵rt麗(L殲c,侄++領(lǐng)k,谷ai);放}wh爬il幟e(孩j<=Lb與_l促en)脅/*表Lb非空夾且表La空雹*/{Ge辜tE稀le縮慧m(筐Lb布,j使++香,&堆bj);Li笛st悲In看se押rt得(L智c,崇++癢k,代bj);佳}}22教材例2-勞1:求搞兩個憐線性呢表的墾“并蓬”,呼即:LA爆U東L肥B睬=么?算法燭至少抱有兩掉種:①LA和LB都是無序膀表,則芝從LB中取勞元素腫逐一汁與LA中所辮有元店素比勒較,場相同習(xí)則不喝插入LA中;O(濁Li庫st無Le戀ng棋th仇(L腳A)*Li織st萬Le釀ng仙th而(L倚B))②若LA和LB已經(jīng)航是有序軌表,則管“歸渠并”娃的時享間效懇率可礦以大填大提京高。O(來Li失st獵Le周ng瓣th蘋(L辯A)+Li擺st械Le幕ng修th負(fù)(L永B))。232.耀2.悶1順序項表的歉表示用一戀組地址尋連續(xù)的存料儲單矛元依恭次存冠儲線司性表公的元否素。把邏嘴輯上徹相鄰碼的數(shù)是據(jù)元詢素存護(hù)儲在鞠物理煩上相抽鄰的雀存儲份單元鈔中的參存儲茫結(jié)構(gòu)寄。線性客表的封順序板表示轟又稱飛為順序朽存儲色結(jié)構(gòu)或順出序映鄙像。順序榮存儲瘦定義另:順序猾存儲歡方法錘:特點膚:邏輯擴(kuò)上相鹿鄰的效元素鉤,物勸理上宿也相壇鄰可以嫂利用數(shù)組V[俗n]來實犬現(xiàn)注意不:在C語言糕中數(shù)滑組的攀下標(biāo)溜是從0開始難,即澡:V[n]的有塵效范儀圍是聲從V[0]~V[n-只1]241.邏輯校上相溜鄰的泰數(shù)據(jù)營元素率,其督物理多上也毅相鄰遞;2.若已運知表哥中首盯元素技在存券儲器立中的孫位置滴,則花其他搞元素排存放州位置拆亦可查求出(利用岔數(shù)組V[皇n]的下標(biāo))。設(shè)首寶元素a1的存芹放地穴址為LO昨C(歇a1)(稱為首地階址),設(shè)每后個元月素占昌用存舉儲空型間(編地址彼長度劣)為L字節(jié)干,則表光中任濟(jì)一數(shù)轟據(jù)元售素的存放競地址為:LO崗C牌(ai+順1)鋪=怖LO煮C(ai)炮+牲LLO夾C孝(ai)銹=圍L鄰OC器(a1)榨+言L鞭*(i燦-1)對上傳述公腿式的齒解釋爽如圖欺所示線性誼表順處序存狂儲特多點:25a1a2……aiai+1……an地址塑內(nèi)容艦元癥素在尖表中蹄的位絨序1i2n空閑占區(qū)i+擊1Lb=漆LO鏟C(丟a1)b+Lb+(么i-榮1)Lb+(零n-副1)Lb+(夏ma賴x-既1)LLO民C能(ai)陣=無L往OC茶(俘a1)劉+秋L(fēng)郊*(i-1)線性堂表的艙順序絡(luò)存儲提結(jié)構(gòu)嶄示意坑圖下標(biāo)關(guān)起點妄是126設(shè)有綠一維鑼數(shù)組M,下示標(biāo)的搖范圍壓是0到挑9,每偏個數(shù)稍組元失素用渣相鄰危的5個測字節(jié)存儲借。存幣儲器屯按字勢節(jié)編茂址,桐設(shè)存仇儲數(shù)跟組元睬素M[0]的第嗽一個嚴(yán)字節(jié)啊的地喝址是98,則M[3]的第虎一個灑字節(jié)臟的地刺址是帥多少學(xué)?答案費:11悟3但此夕題要咱注意克下標(biāo)鎖起點井是從0開始伯:LO閑C(桌M[3禍])層=樸98而+序5恩×幣(4-1)牽=11旱3解:已知酒地址顫計算飼通式塊為:LO糊C(掠ai)善=匪L裙OC貨(a1)稱+繳L所*(i-時1)例1或用選(3-膏0)27ch閣ar桃V忌[30];vo嬌id愧b墊ui嫁ld冷()//字母擾線性擁表的生成,即焦建表米操作{in召ti;V[置0]福='駁a'再;fo者r(撲i輸=1圖;冶i<止=n躍-1醫(yī);瞞i+擾+層)V[睡i]=策V[芽i-媽1]糟+1斥;}核心蓬語句鍛:法1膝V[錄i]付=虎V[敞i-盡1]已+1雖;法2撤V[樹i]攏=’懶a’挺+i圣;法3皺V[冷i]盛=9物7+蠟i;例2用數(shù)嘆組V來存矩放26個英缺文字圾母組章成的爬線性攝表(a,b,c,…,z),寫出姥在順罩序結(jié)銅構(gòu)上生成和顯示該表殼的C語言少程序煌。省略妻了in崗cl徒ud贊e語句28vo或id曠m在ai旁n(滾vo繪id瀉)//主函延數(shù),嫁字母槐線性駕表的生成愁和輸烏出{n=重26筒;//n是表若長,何是數(shù)鞏據(jù)元牛素的熱個數(shù)困,而本不是V的實受際下柱標(biāo)bu隙il開d(占)昏;di貪sp匪la談y(繞)螞;}vo胖id袋d辛is紀(jì)pl東ay篩(辨)//字母誰線性寨表的顯示,即運讀表插操作{in賄ti;fo動r(勁i趙=0遵;抱i姻<=宿n-炸1;廊i+盤+榆)pr欲in寬tf(襲"%腎c"眨,撤v忙[i艷]斃);pr角in魚tf(遍"\圍n司"段);}執(zhí)行唉結(jié)果根:a矛b輪c餐d時e添f獅g瓶h永i除j宋k濁l饒m棋n始o(jì)般p降q輪r禿s針t籌u冠v脫w頑x皇y艙z292.摸2.桐2順序責(zé)表的氣實現(xiàn)篩(或去操作恭)數(shù)據(jù)柳結(jié)構(gòu)向的基需本運耍算:修改蜓、插惑入、那刪除寨、查找爬、排丟序1)修改通過波數(shù)組慚的下抽標(biāo)便蝴可訪疼問某遮個特產(chǎn)定元強(qiáng)素并蛇修改片之。核心傲語句:V[決i]舉=x售;顯然河,順債序表裕修改腹操作矛的時旱間效押率是O(確1)30在線沈性表蒸的第i個位好置前插入一個臣元素實現(xiàn)瓶步驟賺:將第n至第i位的飾元素脅向后慣移動秒一個幻玉位置蕩;將要薯插入粥的元伯素寫殺到第i個位撿置;表長秩加1。fo棗r述(j僅=n查;扭j>多=i模;防j--)a[葵j+埋1]樂=a起[男j徐];a[而i冶]安=x就;n+爺+;//元素訪后移邊一個碼位置//插入x//表長絡(luò)加1核心調(diào)語句清:2)插入注意暫:事先蘋應(yīng)判堡斷:插入隙位置i是否守合法?表是豈否已賽滿?應(yīng)當(dāng)柱符合孕條件匹:1≤恐i≤囑n+策1或i=鴨[1肅,感n+饑1]31在線發(fā)性表射的第i個位系置前來插入越一個特元素萄的示到意圖汪如下嚷:121321242830427712132124252830427712345678123456789插入2532實現(xiàn)清步驟時:將第i+滑1至第n位的禁元素?fù)煜蚯盎笠苿拥鹨粋€險位置桌;表長寸減1。刪除線性諷表的轎第i個位及置上袍的元屋素fo環(huán)r印(悲j=蘿i+評1;獻(xiàn)j噸<=療n;幟j船++艙)a[喬j-踩1]棕=a祝[j乒];n-浪-;//元素舅前移武一個盞位置//表長衡減1核心妄語句泄:3)刪除注意帽:事印先需攔要判犬?dāng)啵瑒h除沃位置i是否終合法?應(yīng)當(dāng)景符合酸條件際:1≤悅i≤裕n或i=垮[1傷,福n]33123456789121321242528304277123456781213212428304277刪除塑順序掛表中倉某個逼指定擦的元即素的淘示意或圖如鬧下:34順序職表的寧運算騙效率墊分析算法尚時間福主要少耗費頭在移動瘋元素的操潤作上蜻,因膊此計算厲時間紅復(fù)雜總度的傳基本傷操作布(最客深層統(tǒng)語句盒頻度殃)T(蛛n)供=O(移動者元素萌次數(shù))而移黨動元禁素的么個數(shù)經(jīng)取決怨于插教入或固刪除攝元素求的位誘置。思考羽:若插躬入在毀尾結(jié)齊點之泛后,千則根填本無加需移表動(原特別寸快)妖;若插變?nèi)朐趧蚴捉Y(jié)澇點之召前,菜則表呆中元蘭素全曾部要飯后移榜(特司別慢咬);應(yīng)當(dāng)藝考慮嘉在各黑種位隱置插批入(盛共n+鑰1種可撕能)姐的平均移動驅(qū)次數(shù)訊才合博理。討論1:若在駐長度羨為n的線柏性表秀的第i位前插入一個齊元素粗,則犁向后悼移動傳元素幣的次找數(shù)f(儲n)為:f(切n)素=n現(xiàn)–毅i親+住1時間映效率分析:35推導(dǎo)娃:假定讓在每首個元殖素位量置上亞插入x的可恐能性苗都一靠樣(瓣即概吐率P相同脆),似則應(yīng)猶當(dāng)這恨樣來剝計算豎平均象執(zhí)行候時間租:將所肝有位敵置的宴執(zhí)行帥時間延相加續(xù),然祝后取習(xí)平均治。若在衣首結(jié)曉點前刪插入患,需剝要移獎動的衛(wèi)元素樹最多億,后橫移次女?dāng)?shù)為n;若在a1后面刊插入傳,要飾后移n-峰1個元者素,鐘后移欣次數(shù)爆為n-窮1;……若在an-彎1后面撐插入拆,后銳移次相數(shù)為1;若在良尾結(jié)禿點an之后榆插入六,則圖后移喊次數(shù)鼓為0;故插勉入時亞的平均移動贏次數(shù)羞為:n(勸n+濕1)叮/2慶÷(n+蛋1)=n/映2≈O(樸n)共有抽多少耕種插層入形傲式?—逼—連頭呆帶尾爽有n+渠1種!所有可能俱的元烘素移拒動次球數(shù)合命計:0+失1+咽…+代n=謠n(獻(xiàn)n+耐1)敲/236同理期可證岡:順序臘表刪則除一際元素幫的時忘間效粒率為:T(n)航=(昌n-使1)暮/2狼≈O(堪n)想一霞想:順序斤表插勺入、獎刪除厚算法錄的平均空間復(fù)雜枕度為多領(lǐng)少?插入岔效率贊:刪除搖效率袖:教材P2饞5算法2.扎5也是俯對執(zhí)聾行效奸率的胳推導(dǎo)壩:因為輝沒有態(tài)占用兆輔助劍空間萌!含義刃:對竟于順甚序表艷,插大入、抹刪除窮操作刮平均制需要祥移動綁一半叉元素(習(xí)n斯/陣2稍)O(輩1)即插除入、牲刪除胳算法吐的平耕均時零間復(fù)轉(zhuǎn)雜度腥為O(算n)37#d涉ef鉗in市e訪L取IS霧T_貌MA賞X_鴿LE本NG夕TH茫1陶00//線性讀表的魚最大當(dāng)長度ty側(cè)pe梢de羅fin擾tEl宅em游Ty干pe;ty撲pe寨de蜜fst液ru倒ct{El野em次Ty逼pe*el蝕em;//指向基存放航線性計表中祥數(shù)據(jù)捐元素瓶的基庸地址in旬tle樂ng沫th虎;//線性度表的雁當(dāng)前漠長度}SQ盯_L燭IS液T;38典型辱操作盼的算栽法實忘現(xiàn)1.初始澇化線秩性表Lin青tIn退it昌Li拴st屯(S顫Q_奧LI霉ST&L宋){L-仍>el蜂em=(El鞭em蘿Ty公pe*)ma挽ll系oc(L木IS板T_艱MA僻X_曠LE報NG膝TH解*si賊ze刑of盛(El專em是Ty奶pe))塞;//分配詢空間if刃(腥L-樓>el寶em==捷NU菊LL訂)蚊r竭et裝ur砌n顧ER勵RO每R;//若分欲配空學(xué)間不厲成功腸,返誕回ER輪RO絨RL-像>l達(dá)en康gt雁h=在0;//將當(dāng)現(xiàn)前線圖性表呈長度弊置0re驚tu削rn掏O氧K;//成功做返回OK}//si賺ze鉤of從(x)算符撈的意抗思是洽:計干算變璃量x的長枕度(字節(jié)衫數(shù))ma貨ll災(zāi)oc搜(m)函數(shù)惱的意盆思是駕:新慣開一松片大網(wǎng)小為m字節(jié)鄰的連求續(xù)空諸間,剪并把遺該區(qū)鳴首址蠻作為行函數(shù)形值。392.銷毀今線性御表Lvo爭idDe坐st螞ro株yL帖is否t(員SQ齡_L基IS岸T&L氏){if沖(豪L-炭>el破em)fr飾ee艇(L->el餓em);//釋放風(fēng)線性劉表占杏據(jù)的他所有撈存儲么空間}403.清空杰線性析表Lvo翻idCl順ea懸rL痕is涌t(身SQ編_L注IS水T&L停){L-懂>l罰en宰gt紡h=薦0;//將線剃性表豪的長鼓度置鼓為0}414.求線楚性表L的長禽度in熔tGe檢tL柔en殘gt宮h(弓SQ悲_L歸IS瞇TL){re鐮tu脅rn紀(jì)(L.趟le蓮ng隊th);}425.判斷防線性嶺表L是否暢為空in但tIs趁Em被pt痛y(贈SQ藏_L蛾IS會TL){if飽(L.種le孝ng紹th==者0)搞r綁et麗ur抖n旦TR陵UE桶;el英se搞r鵲et裕ur臭n繡FA執(zhí)LS賞E;}436.獲取漏線性喪表L中的罩某個妄數(shù)據(jù)嶺元素叢的內(nèi)較容in課tGe撐tE津le岸m(震SQ疼_L皂IS灣TL,縱in擋ti,El簽em淋Ty借pe&e刺){if坐(畫i<性1|掙|i選>L.贏le啦ng鋼th)追re拾tu告rn意E倦RR源OR祝;//判斷i值是巾否合昂理,購若不彈合理慰,返金回ER陳RO林Re=襯L.祝el繩em懷[i呈-1赴];//數(shù)組默中第i-尖1的單遼元存善儲著近線性浙表中痛第i個數(shù)鹽據(jù)元悶素的尺內(nèi)容re協(xié)tu柿rn互O卸K;}447.在線慰性表L中檢顏索值工為e的數(shù)條據(jù)元每素in撓tLo虛ca釀te鈴EL狡em憶(S禿Q_索LI教STL,in車t(*co閉mp妨ar歌e)制(E欄le榜mT編yp虹e,可El嗚em顫Ty循pe)){/章*操作勻結(jié)果步:返申回L中第1個與e滿足計關(guān)系co續(xù)mp味ar惕e(伐)的數(shù)臥據(jù)元戀素的按位序升。若戲這樣鉤的數(shù)斜據(jù)元戰(zhàn)素不平存在虜,則炭返回勒值為0。*/El學(xué)em曉Ty翅pe*p將;in生ti=跟1;/*立i的初草值為游第1個元財素的假位序金*/p=L.寺el也em;/*尋p的初卡值為炎第1個元夠素的陰存儲適位置逢*/wh箭il備e(處i<=L.粱le糧ng跳th呀&&拴!co箭mp痕ar桌e(*p+贊+,蠶e))++今i;if卻(i<=L.淘le駁ng雪th)re羽tu嚼rn因i胞;el油sere佩tu睬rn少0餓;}in原teq工ua添l(El療em緒Ty競pea,凝El樹em嫂Ty啊peb){退/*根據(jù)a<捐>或==b,分考別返松回0或1寬*/if蓄(a==禾b)re估tu卻rn非1減;el摔sere峰tu駕rn凳0紐奉;}Lo跌ca把te錘El升em京(L明,j負(fù),e奸qu框al);458.將線復(fù)性表L中第i個數(shù)貫據(jù)元厲素刪度除in柳tLi鎖st逮De抖le套te犁(S熱Q_絞LI淺ST&L,冰in新ti,El訪em晚Ty容pe&e別){if凈(Is驅(qū)Em陶pt遼y(厭L))假r弦et桂ur幸n送ER茂RO題R;//檢測肝線性它表是辰否為般空if棗(保i<族1|語|i慎>L慈->牛le預(yù)ng脈th膏)書re型tu獻(xiàn)rn認(rèn)E肅RR叢OR茂;//檢查i值是豈否合陶理e=聽L-仇>e鍛le拾m[屢i-火1]仁;//將欲螺刪除汗的數(shù)嗽據(jù)元投素內(nèi)蚊容保客留在e所指騰示的軟存儲蹈單元已中fo傘r臺(j發(fā)=i;枯j<=杯L-蚊>l絹en禍gt目h-譽(yù)1;勺j+的+)//將線款性表缸第i+純1個元組素之蟲后的提所有視元素能向前網(wǎng)移動L-眼>e邀le綱m[述j-納1]孫=L案->el蘇em烏[j];L-撞>l低en吃gt梢h-瘦-;re魔tu販rn哭O梳K;}469.在線提性表L中第i個數(shù)自據(jù)元倚素之享前插年入數(shù)賴據(jù)元陡素ein螞tLi蝦st壇In絮se御rt輩(S租Q_僵LI貸ST&L,獨in隱ti,El朝em畫Ty立pee){//檢查腸是否撒有剩妥余空列間if恐(執(zhí)L-戒>l青en祥gt騾h=瞧=L殘IS動T_命MA養(yǎng)X_缺LE者NG出TH壩)己re亦tu步rnER毀RO敘R;if扣(滴i<魂1|箭|i攜>L壤->洞le投ng譽(yù)th承+1研)頸re騙tu育rn宋E段RR孝OR雁;//我i值是影否合籌理fo鍵r宇(j局=L遺->邁le抽ng硬th孕-1歸;j姨>=沈i-恢1;顆i+訊+)//將線傅性表盞第i個元腥素之革后的方所有秘元素網(wǎng)向后狂移動L.訂->量el晚em裹[j評+1昂]=獎L-烤>el蛛em索[j];L-砍>e模le尊m[乘i-意1]訴=e公;//將新茅元素么的內(nèi)泉容放躲入線旨性表攻的第i個位饒置L-伏>l街en墓gt疾h+柴+;re侮tu柿rn豪O蜂K;}47進(jìn)一槍步討報論:順序剖表的糾存儲雜結(jié)構(gòu)梳是一關(guān)維數(shù)滴組,優(yōu)如果艙插入派的元警素個鞋數(shù)超過數(shù)組拿定義手的長度怎么譜辦?——采用動態(tài)聚分配的一數(shù)維數(shù)縫組48動態(tài)賺數(shù)組山簡介先為藏順序賣表空惡間設(shè)螞定一榨個初密始分咐配量鐮,一茶旦因宅插入壞元素翼而空間廊不足時,后可為韻順序奮表增嚴(yán)加一侄個約定杠長度幻玉的空剃間增誦量。#d斤ef蠅in煮e獨LI揚ST漢_IN含IT瞇_S邊IZ邪E10馬0//存儲愛空間窗的初憲始分騾配量#d嶄ef鋤in屢e煉LI言STIN啊CR晝EM屋EN灣T10//存儲桶空間甩的分隱配增仍量Ty恒pe叢de卷fst叛ru竟ct{El母em撐Ty巨pe*el窄em;//表基承址(用指擁針*el剖em表示)in各tle曉ng鍋th脫;//表長狠度(表中換有多陪少個乘元素)in遺tli睜st麥si織ze;//當(dāng)前框分配霉的表艙尺寸(字節(jié)沃單位)}Sq夕Li濾st;注:核三個院分量融可簡改寫為:L.e累le崇mL.l嗓en獄gt親hL.l皂is配ts故iz旋e存儲達(dá)結(jié)構(gòu)熄描述暮如下(見融教材P2托2):49St倍at別usIn挑it灶Li臣st嗓_S反q(Sq溫Li刪st&L)//創(chuàng)建摧一個遠(yuǎn)空線從性表{L.文el核em=(El額em簽Ty速pe*)ma默ll童oc(LI鈔ST綱_I蘆NI僅T_醉SI羨ZE*si嶄ze復(fù)of茂(El俯em學(xué)Ty痕pe));if勿(!L.盟el押em)炊e軋xi昆t(OV卷ER熊FL勺OW);//分配陰失敗勝,結(jié)廳束程題序L.源le節(jié)ng慰th=0壞;//暫無執(zhí)元素援放入虎,空劃表L.脆l(xiāng)i太st模si交ze=LI督ST換_I押NI敬T_屆SI期ZE;//表尺控寸=初始傻分配仆量Re翁tu叨rnOK;}//In其it急Li螞st倚_S友q動態(tài)創(chuàng)建一個空順序創(chuàng)表的算法:50動態(tài)既順序注表的插入食算法St游at霧usLi鑰st腥In以se顧rt霸_S江q(俯Sq泊Li結(jié)st&L,in隸ti,El災(zāi)em跳Ty脅pee){//在順督序線敞性表翻中第i個位礎(chǔ)置之鈔前插齡入新覺的元周素eif摩(哄i磨<荒1ori辰>L.止le吊ng擱th+1戴)撫re傲tu訊rnER壓RO瞇R;//檢驗i值的揉合法捐性if(榮L.暮le窗ng吧th≥L.青l(xiāng)i都st筆si恭ze)//若表脈長超董過表議尺寸始則要釀增加懷尺寸{ne騎wb榮as么e=列(El預(yù)em熄Ty訊pe*逆)re座al姨

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論