版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
2010-3-3第2章線性表線性表的順序表示和實現(xiàn)本章內(nèi)容2.1線性表的類型定義2.2線性表的順序表示和實現(xiàn)2.3線性表的鏈式表示和實現(xiàn)2.3.1單鏈表2.3.2循環(huán)鏈表2.3.3雙向鏈表2.4一元多項式的表示及相加線性表的順序表示順序表:結(jié)點依次存放在線性連續(xù)空間中的線性表。假設l:每個結(jié)點所占的存儲單元數(shù)b:第一個結(jié)點的存儲位置LOC(a1),稱起始位置或基地址則LOC(ai+1)和LOC(ai)的關(guān)系為:LOC(ai+1)=LOC(ai)+l第i個數(shù)據(jù)元素ai的存儲位置為:LOC(ai)=LOC(a1)+(i-1)*l12…i…nlengthan…ai…a2a1存儲地址內(nèi)存狀態(tài)結(jié)點位序bb+l…b+(i-1)l…b+(n-1)l…b+(maxlen-1)l空閑llLOC(a1)順序表內(nèi)存分布示意圖順序表的描述隨機存?。褐灰_定了順序表的起始位置,表中任一數(shù)據(jù)元素都可隨機存取,所以順序表是一種隨機存取的存儲結(jié)構(gòu)。Q:數(shù)組是隨機存取的嗎?A:是。順序表的數(shù)據(jù)排列以及操作方式,與數(shù)組非常相似。vector和數(shù)組的唯一區(qū)別:空間運用的靈活性數(shù)組是靜態(tài)空間,一旦配置了就不能改變。要換個大(或?。┮稽c的房子,可以,一切瑣細得有客戶端自己來:配置新空間->元素從舊址一一搬往新址->釋放舊空間。vector是動態(tài)空間,隨著元素的加入,它的內(nèi)部機制會自行擴充空間以容納新元素。因此,vector的運用對于內(nèi)存的合理利用與運用的靈活性有很大的幫助,我們再也不必因為害怕空間不足而一開始就要求一個大塊頭數(shù)組了,我們可以安心使用vector,吃多少拿多少。所以,我們一般用動態(tài)分配的一維數(shù)組來定義順序表類型。千頭萬緒該如何說起?以客戶端程序代碼為引導,觀察其所得結(jié)果并實證源代碼,是一個良好的學習路徑。例:項目vectorTest動態(tài)分配的順序表存儲結(jié)構(gòu)#defineLIST_INIT_SIZE100 //存儲空間的初始分配量#defineLISTINCREMENT10 //存儲空間的分配增量typedefstruct{
ElemType*elem;
//存儲空間基址
intlength;
//當前已用空間的長度
intlistsize;
//當前可用空間的長度}SqList;順序表基本操作在順序表存儲結(jié)構(gòu)中,很容易實現(xiàn)線性表的一些操作,如線性表的構(gòu)造、第i個元素的訪問。需掌握的基本操作InitList_SqListInsert_SqListDelete_SqLocateElem_SqMergeList_Sq注意:C語言中的數(shù)組下標從“0”開始順序表基本操作的實現(xiàn)--InitList_Sq思路:初始化SqList的三個成員StatusInitList_Sq(SqList&L){//構(gòu)造一個空的線性表L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW); //存儲分配失敗L.length=0;
//空表長度為0L.listsize=LIST_INIT_SIZE; //初始存儲容量returnOK;}//InitList_Sq,算法2.3如果一個形參值有可以改變,或者要從函數(shù)返回某個值,則設為引用參數(shù)。順序表基本操作的實現(xiàn)--GetElem_SqStatusGetElem_Sq(SqListL,inti,ElemType&e){//初始條件:線性表L已存在,1<=i<=ListLength(L);//操作結(jié)果:用e返回L中第i個數(shù)據(jù)元素的值 if(i<1||i>L.length)//i值不合法 returnERROR; e=L.elem[i-1]; returnOK;}順序倡表的驢插入順序佛表的顛插入孩運算怒是指揭在表漫的第i(騰1<熄=i芬<=維n+圖1)個位拍置之部前插維入一絕個新并結(jié)點e,使參長度因為n的順巧序表(a1,…ai-省1,ai,…,an)變成讓長度押為n+之1的線移性表(a1,…ai-破1,e,ai,…,an)順序事表的巷插入33例:雄(3暴5,虛12兄,2俱4,冷42鄭),觸在i前=2莫的位瓶置之儀前插腹入3梳3。435122442a1a2a3a40饑1榮2悟3開4422412335Q:什劈燕么時殊候不聯(lián)能插乒入?注意邊界條件1.合理祝的插洲入位駁置:1≤恢i≤鍛L.素le德ng勤th瓜+1(i指的諒是元船素的寬序號甩)2.表滿遙:L.接le瘡ng盤th亡>=插L.漿li路st勺si耳zeL.港le伴ng煙thL.脅el頌em順序靠表的阿插入算法預偽碼1.如果兵元素蠅的插蜜入位抗置不尿合理象,則討返回緣瑞錯誤婚信息;2.如果筆表已突滿,秩則增加吧分配瘡;3.將最后配一個酬元素來至第i個元涼素分別向前辰移動一個芝位置政;4.將元層素x填入駛位置i處;5.表長敗加1。線性霞表的興插入P2霸4vo買id繭L祝is幅tI襖ns牙er陽t填(S蠢qL當is員t防&L桐,佩in征t婆i,標E辮le笛mT爭yp節(jié)e辮e){//伯第i孤個位完置之嬌前插模入e蜻,初脅始條當件:勵順序醋線性心表L竄已存訓在,1≤討i≤悅Li碼st詳Le腐ng要th瞧(L蔥)+柴1El霸em藝Ty拋pe發(fā)*創(chuàng)ne京wb恐as蔬e,羊*綠q,昌*梢p;if卻(蹈i<謎1爬||隸i挎>L就.l陜en繼gt示h+旨1)旱r傳et悄ur愧n宏ER齡RO訓R;//望i液值不串合法if君(L.代le規(guī)ng撞th協(xié)>列=依L.充li標st欣si波ze)//德當版前存儲擱空間喪已滿,攜增加河分配{ne挪wb侮as沉e城=次(E協(xié)le辮mT鬼yp玻e跡*)re疫al赴l(fā)o鎮(zhèn)c(L專.e孟le外m,枝(霸L.府li蔽st毒si咳ze翼+L青IS匪TI蹤蝶NC悲RE橋ME功NT不)*康si星ze箭of崇(E肆le多mT悅yp職e)匹);if墾(語!n派ew隸ba竹se棵){錘fr林ee唱(L咐.e沉le棕m)富;歪e濕xi終t(震OV聾ER飲FL天OW鏈);詢}//刊存賴儲分魔配失標敗L.糞el慈em劈燕=塑n扯ew吼ba關(guān)se貪;//集賦拖值為緊新基臥址,辜因為螞新基杏址有溜可能確改變L.已li稻st籌si告ze折+衰=丙LI門ST耽_I偵NC綁RE駛ME揪NT橫;//齊增扮加存賽儲容粱量}q挺=斥&(撈L.伸el顧em廊[i恨-1侮])擴;//寬q梳為插入宴位置點,液等同握于q遺=傷L嗚.e再le勾m氧+鋸i橫-落1;fo經(jīng)r海(p=足L.蜂el蜂em蛛+L般.l綠en坑gt喜h-震1;刺p>鏡=q腹;侄-炕-p學)//壁插仇入位姐置及餐之后冷的元驕素右戰(zhàn)移*(剃p+圖1)段=較*戶p;*q紅=黑e悄;//灶插確入e++冶L.令le脾ng氣th袖;//疤表漫長增父1re阿tu奪rn允O象K;}//算法2.蹤蝶4指針泛的加嶺法對指施針進職行加1操作資,得錦到的妨是下一壩個元辯素的地踩址,喉而不墊是原陣有地鼓址值同直接情加1。所以劉,一對個類溉型為T的指刊針的祥移動斑,以si才ze案of欣(T酸)為移喊動單去位。Q:第三日個元桂素地址的表妙示方張式?L.賊el漁em跌+2&L誤.e劣le膝m[后2]Q:第三美個元暮素值怠的表騰示方蕩式?L.器el筑em逢[2曉]*(處L.紋el拜em棵+2捧)p梅=己L.問el透em海+2洗;旅*pp號=須&(齊L.銀el雕em娘[2此])夢;壘*p1234……0x12300x12340x12380x123b0x123f0x1244L.elemL.elem+1線性添表的間插入抬--臭復雜嚼度分胳析2等-1時間嘗復雜伸度分沾析基本極操作愉:偵移動筋元素所需睜移動兇結(jié)點搞的次凱數(shù)不礎僅依衫賴于裁表的墾長度仆,而裹且還忽與插既入位軌置有齊關(guān)。最好情況祖(i=n+1肺):提n表窯示表樣的長鈔度基本腎語句軟執(zhí)行蝴0次茶,時旁間復成雜度政為O(1瞎)。最壞情況分(i=1尚):基本康語句遞執(zhí)行n次,鄙時間穿復雜域度為O(n)。順序逐表的等插入噴--跟復雜朵度分舟析2涼-2平均情況貨(1煙≤i≤n+1糟):假設軋pi是在略第i繞個元載素之漆前插雞入一昂個元以素的球概率曠,不巴失一密般性網(wǎng),假抽設在但表中初任何腿位置步(1≤i≤n+余1)賊上插萬入結(jié)亮點都套是等概繭率的,貼所以惱p1=p2=p3=…托=pn+酬1=1敵/(責n+捧1)因此鍋,長技度為掩n的銷線性額表中站插入側(cè)一個吵結(jié)點遙所需敘移動治次數(shù)站的期債望值劣(即辨平均組值)眼為Eis(n腎)=算法資的平槍均時祖間復傷雜度縣為O(劃n)。也榴就是漸說,筍在順請序表餐上做遣插入除運算忽,平若均要枕移動躬表上煉一半偶結(jié)點新。當回表長鐵n較帳大時昏,算績法的效率械相當蛾低。?+-+=11)=1(niiinp?+-++=11)=1(11niinn2n=O(n)列舉籠法分域析列舉巷法分訴析移灶動次艦數(shù)和要i的如關(guān)系i摧移冊動次民數(shù)1帥n蛛=堡n么-1傻+12津n她-1多=童n-廣2+橋13反n骨-2僑=近n-籠3+捕1..宴...拴.n偷1蚊=隔n傷-n撓+1i磚n谷-i姓+1順序京表的揪刪除線性碼表的喊刪除踐運算我是指渠將表急的第i(亮1≤i≤n)結(jié)點神刪除代,使李長度牙為n的線賠性表埋:(a1,…ai-忽1,ai,ai+急1,…,an)變成汁長度閑為n-浙1的線漿性表(a1,…ai-郵1,ai+社1,…,an)例:尾(35盆,射33橋,夕12源,薪24保,館42),短刪除i=女2的數(shù)皺據(jù)元搬素。仿照渠順序著表的裹插入掃操作南,完圈成:1.弊分蕉析邊頓界條垮件;2.充分分別給綠出算披法偽寒碼(己或描筐述)孕和算蹦法的章C語隔言程組序;3.燃分防析時英間復期雜度紫。535a1a2a3a40棵1良2破3班4422412334a5122442順序軌表的踢刪除--看-算法2.浸5圾P酒24St朋at竭us軋L君is殃tD跳el堅et剝e_墊Sq怨(S繞qL量is圈t慮&L廊,i麻nt侮i詞,E遵le嘩mT溫yp窄e丸&e程){//鏡初處始條張件:臨順序恐線性奧表L映已存坡在,1≤餓i≤坦Li篩st違Le龍ng犧th育(L峽)//經(jīng)操俗作結(jié)劈燕果:旋刪除燥L的碼第i葡個數(shù)鈔據(jù)元傭素,律并用壇e返卡回其窩值,帥L的糖長度份減1El獵em禿Ty稻pe縫*僅p,耐*q壇;if蝕(儉i<凳1確||筐i纏>L守.l皺en牌gt擱h)//吐i霜值不仿合法re嫩tu慈rn拐E拋RR靜OR鉆;p息=葡L.喂el口em慨+亮i槐-粘1;//忠p棵為被腳刪除請元素榴的位膝置e挑=緊*p逗;//拋被撫刪除伐元素葉的值義賦給斥eq邁=印L.香el希em浴+芬L柱.l噸en擠gt泊h獄-悲1;//盟q嚼指向表尾拆元素fo方r例(++閉p;除p<潮=q蹲;冤++錦p)//朽被酬刪除繩元素愉之后待的元添素左白移*(斯p-嗽1)鈔=*騰p;--摔L.駝le孫ng勻th查;//聞表久長減現(xiàn)1re削tu賞rn障O武K;}//周算誘法2吳.5順序杜表的哈刪除—時間洽復雜列度分廉析該算乖法的磁時間蹦分析嗎與插吹入算尸法相畢似,滅結(jié)點覽的移陶動次肉數(shù)也促是由惜表長n和位自置i決定擇。最好情況(i=n):n表示芬表的設長度基本珠語句璃執(zhí)行0次,財時間重復雜昂度為O(1計)。最壞情況(i=1):基本警語句腰執(zhí)行n-助1次,泡時間坡復雜慣度為O(n)。平均情況(1≤i≤n)在長稀度為n的線座性表揉中刪嗚除一腸個結(jié)愿點,泊令Edl(n滔)表示祝所需譽移動干結(jié)點愚的平礎均次移數(shù),拐刪除鳥表中物第i個結(jié)判點的獄移動驅(qū)次數(shù)叔為n-頸i,故Edl(n賞)=耳pi魂(n千-i欣)在等潑概率仰的假摟設下攜,p1=p2=p3=…淡=pn=1祖/n,由露此可宋得:Edl(n吐)=座(n醉-i俘)/訓n=麗(n動-1諷)/墊2即在味順序海表上琴做刪宮除運傾算,肯平均背要移限動表紐奉中約端一半遺的結(jié)拌點,勻平均嶼時間求復雜驢度也首是O(斤n)。?=1ni?=1ni順序關(guān)表的械按值跑查找P2胳5in細t顧Lo耽ca值te黑El薦em瞞_S耽q(幸Sq許Li器st有L獲,E褲le置mT率yp蓬e屢e,St兔at波us拍(流*c松om帽pa騙re驚)(廚El爬em殼Ty諷pe村,E么le癥mT麻yp逃e)){//陜初魄始條勻件:停順序份線性捷表L級已存尾在,狂co歸mp猛ar捧e(塔)是讀數(shù)據(jù)翅元素努判定禿函數(shù)尋(滿仗足為挪1,堵否則陡為0叢)//愚操渡作結(jié)華果:宋返回剩L中疤第1愧個與墓e滿揀足關(guān)暗系c緞om序pa禁re絞()跳的數(shù)遞據(jù)元顧素的筐位序旺。//檔若際這樣永的數(shù)散據(jù)元鴉素不康存在值,則烏返回業(yè)值為護0。El朽em奏Ty鍵pe埋*鑄p;in稀t匪i虎=聽1;//蘿i罩的初征值為世第1插個元鉗素的魄位序p斯=池L.惡el倘em別;//撤p貢的初搜值為剛第1稅個元超素的食存儲撲位置wh覺il徒e乎(i渠<=慈L.愉le麗ng段th惹&論&!c恩om鉛pa份re叫(*綢p+隱+,芹e))++萍i;if終(勇i噴<=苦L炒.l東en搬gt跌h)//導找怒到re顫tu解rn知i改;el網(wǎng)sere游tu喘rn航0蠢;}//挺算葉法2和.6順序著表的障按值禁查找--幣-時位間復痕雜度考分析基本拒操作沒:兩筋個結(jié)誓點之露間的費比較1、若部存在民和e相同稅結(jié)點ai,比見較次遇數(shù)為i(1≤i≤夜L.率le突ng森th)2、否蟲則為L.耗le話ng矩th所以廊,時間狡復雜昆度為閱O(鹽L.晌le動ng壁th歇)順序舉表的最合并2-史1vo株id幣M晨er閉ge掉Li榜st書(S拘qL釋is喬t存La存,碼Sq幣Li吹st凝L纏b,軍S缸qL匹is乖t的&L命c)//岸算燙法2文.7{//題已河知順索序線梢性表毫La肢和L訴b的摟元素顆按值橋非遞每減排環(huán)列。//野歸魯并L題a和可Lb明得到殺新的舒順序圖線性麥表L聯(lián)c,修Lc嚴的元揮素也夾按值襪非遞壯減排袍列El蝦em麥Ty許pe樸*狹pa慰,賺*p批a_埋la訂st即,性*p舌b,場*釘pb濫_l兩as申t,平*傘pc紋;pa雙=L盛a.袖el懸em失;//允p借a指濫向L謎a的裳第一盯個元追素pb成=L生b.爽el蚊em予;//獄p芬b指絨向L沾b的趁第一旦個元狡素Lc擋.l堆is李ts脾iz右e=雷Lc妖.l盡en般gt蒼h=愚La脅.l捕en去gt續(xù)h+榨Lb慘.l途en臘gt環(huán)h;//靜p瓣c指煌向L沖c的茫第一才個元號素pc從=L槐c.臘el潑em姻=(瘦El茂em爬Ty逐pe拋*說)m兄al崗lo固c(幻玉Lc蘭.l型is攜ts盤iz玩e*科si艘ze斜of厘(E布le洲mT橫yp寶e)繡);if蟻(!拆Lc較.e撒le姿m)//存儲芽分配氣失敗ex慈it提(O胞VE攪RF米LO嗽W)刷;順序購表的谷合并2-透2pa亡_l康as側(cè)t桃=雷La必.e園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<位=p鐵a_兼la博st遭&遺&敘pb杏<=使pb痰_l嚴as來t)//表La和表Lb均未插危入完康畢{if卸(螺*p邊a械<=俱*姥pb氏)*p喚c+召+=演*p洞a+柄+;//將pa所指墊單元拐的值該賦給pc所指搖單元柳后,pa和pc分別+1島(指向撈下一休個元河素)el楚se*p艷c+變+=牲*p須b+督+;//將pb所指尚單元興的值鄉(xiāng)豐賦給pc所指演單元卸后,pa和pc分別+1證(指向扶下一較個元版素)}//以下拋兩個wh井il奶e循環(huán)桂只有沉一個悠會被謊執(zhí)行wh唉il尊e(p梅a駱<=瀉p頃a_旺la白st喉)//表La非空且表Lb空,插入La的剩律余元喝素*p造c+晴+制=馬*p削a+童+;wh堪il柔e(p奧b而<=宮p記b_拴la珠st刑)//表Lb非空且表La空,插入Lb的??加嘣钏?p朱c+繁+跟=帥*p教b+茂+;}//算法抬2.屯7順序拉表的雀合并--荒-復雜留度分灰析算法2.算7懲T(倚n)蝕=O騙(L逆a.脅le聲ng里th蓮+L業(yè)b.室le贈ng熱t(yī)h奸)是線減性的逃,因吉為1、La和Lb中元坡素依個值遞厚增,邀則對Lb中每園個元餐素,不需均在La中從表連頭至迅表尾尤進行全程落搜索;2、用褲新表月表示些“并唇集”妻,則頃插入壩操作膚實際警上是靈借助循“復辜制”熄完成排序界可利說用10柿.3節(jié)的距快速婆排序粘,T(呀n)逐=所n憂lo黎gn由此考可見何,若住以線踐性表擾表示棉集合申并進萍行集盞合的熊各種傳運算座,應
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年保險合同與責任條款書
- 2024年度環(huán)保設備生產(chǎn)與銷售承包合同
- 2024年城市建筑磚塊銷售合同
- 銷售人員客戶招待費用管理制度
- 工廠車間環(huán)境清潔方案
- 2024年度項目投資與股權(quán)轉(zhuǎn)讓合同
- 2024年廢棄物處理和資源回收利用合同
- 2024年建筑項目合作合同
- 2024年度車輛租賃與運營合同
- 2024醫(yī)療藥品銷售代理合同
- 網(wǎng)簽授權(quán)書(學生就業(yè)平臺)
- GB/T 14480.1-2015無損檢測儀器渦流檢測設備第1部分:儀器性能和檢驗
- FZ/T 21001-2019自梳外毛毛條
- CB/T 3780-1997管子吊架
- 施工圖預算的編制工作規(guī)范
- 日立電梯MCA調(diào)試培訓課件
- 電動客車驅(qū)動橋總成設計
- 四川省阿壩藏族羌族自治州《綜合知識》事業(yè)單位國考真題
- 2023年人民法院電子音像出版社招聘筆試題庫及答案解析
- 大學生心理健康優(yōu)秀說課-比賽課件
- 收款賬戶變更的聲明
評論
0/150
提交評論