版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1第1章緒論第2章線性表第3章棧和隊列
第4章串第5章數(shù)組和廣義表第6章樹和二叉樹
第7章圖第9章查找第10章排序目錄數(shù)據(jù)結構課程的起點:什么是線性結構?3線性結構的定義:
若結構是非空有限集,則有且僅有一個開始結點和一個終端結點,并且所有結點都最多只有一個直接前趨和一個直接后繼?!杀硎緸椋海╝1,a2,……,an)
簡言之,線性結構反映結點間的邏輯關系是
的。特點①只有一個首結點和尾結點;特點②除首尾結點外,其他結點只有一個直接前驅(qū)和一個直接后繼。線性結構包括:線性表、堆棧、隊列、字符串、數(shù)組等,其中最典型、最常用的是------線性表一對一(1:1)4第2章線性表2.1線性表的類型定義
2.2線性表的順序表示和實現(xiàn)2.3線性表的鏈式表示和實現(xiàn)2.4一元多項式的表示及相加5(a1,a2,…ai-1,ai,ai+1
,…,an)2.1線性表的類型定義線性表的定義:用數(shù)據(jù)元素的有限序列表示n=0時稱為數(shù)據(jù)元素線性起點ai的直接前趨ai的直接后繼下標,是元素的序號,表示元素在表中的位置n為元素總個數(shù),即表長。n≥0空表線性終點6
(A,B,C,D,……,Z)學號姓名性別年齡班級012005010122陳建男192007級信工0701班012005010204吳玉鳳女182007級信工0502班012005010313王澤林男202007級信工0703班012005010406蘇荃男192007級信工0704班012005010118王春花女172007級文信0705班:::
::例2分析學生情況登記表是什么結構。分析:數(shù)據(jù)元素都是同類型(記錄),元素間關系是線性的。分析:
數(shù)據(jù)元素都是同類型(字母),元素間關系是線性的。注意:同一線性表中的元素必定具有相同特性!例1分析26個英文字母組成的英文表是什么結構。72.2線性表的順序表示和實現(xiàn)2.2.1順序表的表示2.2.2順序表的實現(xiàn)2.2.3順序表的運算效率分析82.2.1順序表的表示用一組地址連續(xù)的存儲單元依次存儲線性表的元素。把邏輯上相鄰的數(shù)據(jù)元素存儲在物理上相鄰的存儲單元中的存儲結構。線性表的順序表示又稱為順序存儲結構或順序映像。順序存儲定義:順序存儲方法:特點:邏輯上相鄰的元素,物理上也相鄰可以利用數(shù)組V[n]來實現(xiàn)注意:在C語言中數(shù)組的下標是從0開始,即:
V[n]的有效范圍是從V[0]~V[n-1]91.
邏輯上相鄰的數(shù)據(jù)元素,其物理上也相鄰;2.
若已知表中首元素在存儲器中的位置,則其他元素存放位置亦可求出(利用數(shù)組V[n]的下標)。設首元素a1的存放地址為LOC(a1)(稱為首地址),設每個元素占用存儲空間(地址長度)為L字節(jié),則表中任一數(shù)據(jù)元素的存放地址為:
LOC(ai+1)=LOC(ai)+L
LOC(ai)=LOC(a1)+L*(i-1)對上述公式的解釋如圖所示線性表順序存儲特點:10a1a2……aiai+1……an
地址內(nèi)容元素在表中的位序1i2n空閑區(qū)i+1Lb=LOC(a1)b+Lb+(i-1)Lb+(n-1)Lb+(max-1)LLOC(ai)=LOC(a1)+L*(i-1)線性表的順序存儲結構示意圖11設有一維數(shù)組M,下標的范圍是0到9,每個數(shù)組元素用相鄰的5個字節(jié)存儲。存儲器按字節(jié)編址,設存儲數(shù)組元素M[0]的第一個字節(jié)的地址是98,則M[3]的第一個字節(jié)的地址是多少?113但此題要注意下標起點略有不同:LOC(M[3])=98+5×(4-1)=113解:已知地址計算通式為:LOC(ai)=LOC(a1)+L*(i-1)例112
charV[30];voidbuild()/*字母線性表的生成,即建表操作*/{inti;V[0]='a';for(i=1;i<=n-1;i++)
V[i]=V[i-1]+1;
}核心語句:法1V[i]=V[i-1]+1;法2V[i]=’a’+i;法3V[i]=97+i;例2用數(shù)組V來存放26個英文字母組成的線性表(a,b,c,…,z),寫出在順序結構上生成和顯示該表的C語言程序。13voidmain(void)
/*主函數(shù),字母線性表的生成和輸出*/{n=26;
/*n是表長,是數(shù)據(jù)元素的個數(shù),而不是V的實際下標*/build();display();}voiddisplay()
/*字母線性表的顯示,即讀表操作*/{inti;for(i=0;i<=n-1;i++)printf("%c",v[i]);printf("\n");}執(zhí)行結果:abcdefghijklmnopqrstuvwxyz142.2.2順序表的實現(xiàn)(或操作)數(shù)據(jù)結構的基本運算:修改、插入、刪除、查找、排序1)修改通過數(shù)組的下標便可訪問某個特定元素并修改之。核心語句:
V[i]=x;顯然,順序表修改操作的時間效率是O(1)15在線性表的第i個位置前插入一個元素實現(xiàn)步驟:將第n至第i位的元素向后移動一個位置;將要插入的元素寫到第i個位置;表長加1。注意:事先應判斷:插入位置i是否合法?表是否已滿?
應當有1≤i≤n+1或i=[1,n+1]for(j=n;j>=i;j--)a[j+1]=a[j];
a[i]=x;n++;//元素后移一個位置//插入x//表長加1核心語句:2)插入16在線臥性表忌的第i個位甩置前律插入仿一個乎元素鍛的示誓意圖掘如下典:121321242830427712132124252830427712345678123456789插入2517實現(xiàn)針步驟叔:將第i+持1至第n位的打元素囑向前育移動葵一個霸位置敵;表長稠減1。注意柄:事貧先需右要判丹斷,刪除衣位置i是否則合法?應當瞧有1≤蘆i≤敵n或i=緊[1脂,拜n]刪除折線性得表的府第i個位膽置上粒的元碌素fo誕r捎(貨j=紹i+賞1;粗j橡<=上n;究j恭++叫)a[抵j-蛋1]待=a[恐j];n-男-;//元素杏前移押一個董位置//表長孔減1核心灶語句修:3)刪除18123456789121321242528304277123456781213212428304277刪除突順序煙表中昏某個斥指定來的元和素的勢示意鑼圖如女下:順序六表插嘩入和銀刪除爐的完渠整程柿序請售同學健們自精編。192.阻2.毛3順序但表的燦運算選效率赤分析算法嚇時間企主要睬耗費桌在移動降元素的操倘作上辟,因?qū)ご擞嬎憧釙r間鹽復雜固度的趕基本批操作首(最衫深層徑語句努頻度燥)T(扎n)=觀O(移動元素藏次數(shù))而移振動元正素的蛇個數(shù)丘取決當于插秒入或淹刪除洽元素肢的位為置.思考怕:若插苗入在折尾結設點之愁后,漏則根汁本無榆需移候動(區(qū)特別答快)闖;若插售入在艘首結百點之連前,胳則表綿中元讓素全躲部要沈后移沫(特閥別慢煤);應當喘考慮研在各泛種位斜置插嗽入(乎共n+李1種可變能)亭的平均移動揀次數(shù)慮才合牧理。討論1:若在禿長度糖為n的線養(yǎng)性表錢的第i位前插入一個罵元素灣,則飄向后話移動弄元素什的次轟數(shù)f(疼n)為:f(畜n)否=n奸–緒i喇+慕1時間牽效率忘分析:20推導著:假定貿(mào)在每陳個元掏素位百置上回插入x的可得能性扭都一跡樣(太即概帆率P相同跨),案則應師當這卸樣來赤計算燦平均堂執(zhí)行饒時間鈴:將所擋有位揮置的酷執(zhí)行榮時間追相加獨,然嫁后取除平均辦。若在泉首結劫點前主插入您,需恥要移除動的不元素你最多撲,后職移n次;若在a1后面問插入污,要尋后移n-范1個元妖素,逗后移棄次數(shù)表為n-裳1;……若在an-胡1后面瞞插入尸,要諷后移1個元騎素;若在母尾結義點an之后爹插入筍,則緩后移0個元安素;所有皂可能譽的元蜘素移丟動次菜數(shù)合欣計:0+籠1+…+n=旋n(析n+踐1)銳/2故插說入時農(nóng)的平醫(yī)均移換動次隆數(shù)為跌:n(鞠n+金1)帶/2攏÷(n+早1)=n/剃2≈O(艙n)共有態(tài)多少殺種插糕入形門式?——連頭滾帶尾且有n+漠1種!21同理煮可證屯:順序蛋表刪地除一胡元素區(qū)的時騾間效優(yōu)率為:T(n)梅=(獲n-推1)玻/2諒≈O(饑n)想一唯想:順序途表插制入、稀刪除棍算法寒的平均空間復雜測度為多堪少?插入輩效率繩:刪除照效率浸:教材P2接5算法2.斜5也是陡對執(zhí)艙行效歌率的錘推導立:因為皂沒有溜占用罰輔助覆空間婚!含義宏:對彈于順升序表刪,插入扒、刪留除操延作平坦均需原要移雀動一剝半元閱素(穴n親/嗎2必)O(戚1)即插澇入、當刪除網(wǎng)算法蹦的平圓均時傲間復稿雜度加為O(據(jù)n)22鏈式刪存儲受結構本節(jié)梁小結線性橋表順序疫存儲嘴結構個特點:邏惱輯關椅系上青相鄰抄的兩屈個元饑素在右物理錫存儲腫位置腳上也淺相鄰嗓;優(yōu)點且:可以憤隨機少存取鑼表中嶺任一孕元素甩,方隊便快煌捷;缺點浸:在插隙入或冠刪除倚某一馬元素焦時,獨需要紫移動延大量結元素徹。解決湯問題位的思艷路:改用稱另一蜓種線圍性存懇儲方怕式:23課堂脈討論專:順序描表的“宏觀”算法馬該如駱何書疤寫?——亂—采用抽象警數(shù)據(jù)全類型來表黨示順序呢表的慶存儲倚結構侵是一答維數(shù)葵組,卸如果欄插入顯的元鈔素個稻數(shù)超礦過數(shù)伴組定拆義的幕長度呢怎么希辦?——雪—采用動態(tài)憤分配的一召維數(shù)乏組24動態(tài)埋數(shù)組汗如何最實現(xiàn)(見教縫材P2襪2和P2眼4)#d郊ef途in再eLi掏st桿_I繩ni雹t_具Si建ze10撞0電//初始論空間#d丹ef應in其eLi帆st偶_I甜nc鏟re惰me曲nt10慣//分配久增量…………L.娃li搬st擾si費ze=Li糧st暫_I貼ni批t_疲Si疼ze;If造(L橫.l塔en怕gt毯h>=L.江li四st卷si盈ze){…………L.冠li仗st囑si速ze+=Li姜st昨_I裕nc局re買me遲nt;};P2召3的ma使ll疲oc()函數(shù)躺與P2倍4的re涉al狂lo嗚c()函數(shù)寬有什聯(lián)么不賠同?25動態(tài)止數(shù)組姑簡介先為豬順序傷表空稻間設親定一致個初光始分招配量斃,一貍旦因內(nèi)插入翅元素騎而空間異不足時,古可為酬順序絲式表增躲加一類個固定局長度范的空磁間增蝕量。#d族ef閘in鍋e描LI的ST序_I裙NI沃T_殲SI泉ZE枝1旋00//存儲殊空間音的初眼始分熟配量#d基ef繡in裙eLI踐STIN勵CR艇EM謹EN縮慧T10//存儲嗚空間片的分伏配增粱量Ty除pe局de受fst趁ru意ct{El滋em蛙Ty攻pe*el錦em;//表基址(用指功針*el唱em表示)in盜tle觀ng列th奧;//表長度潑(表中煉有多網(wǎng)少個乞元素)in右tli屈st屑si狡ze;//當前分配鳴的表還尺寸(字節(jié)綢單位)}Sq掩Li省st;注:酒三個旺分量脊可簡店寫為子:L.e孟le違mL.l籃en湖gt坐hL.l巴is暢ts怖iz瀉e存儲敵結構醒描述暮如下飽(見教奸材P2攤2):26線性斗表的男定義(見教誼材P1攝9)AD凱TLi罪st{數(shù)據(jù)信對象南:D=事{ai|ai∈E卡le遮mS踐et,燈i=絕1,容2,椅…,岔n,射n≥飲0}數(shù)據(jù)午關系植:R1睬={<ai–1,ai>|ai–1,ai∈D愚,滲i=走2,言…,國n}基本波操作圖:初始鄭化、僅撤銷寫、清???、黎判空腔;求表今長、驗表頭接、表頑尾、湊前趨盾、后壁繼;讀元挖素、皮查找巨(含溉定位醒)、帥遍歷燒;插入拖、刪唯除}AD雷TLi箭st27線性涂表的現(xiàn)基本普操作仍如何話表示豪?(見捷教材P1嚷9)In昂it沙Li訴st(&L懶);縫/叫/建空穿表,勿初始漿化De仁st啞or丑yL密is線t(&L巾);凍//撤銷港表,衰釋放譯內(nèi)存in綢tLe繼ng袍th這Li喜st(隆L會);五//求表伯中元蓮素個汗數(shù),繁即表別長PO屑SI凝TI急O(jiān)NLo蛾ca筒te呀El殲em(L,轉(zhuǎn)El確em盆Ty沉pee,co婦mp尿ar隊e(睜)游);Pr箱io塑rE球le達m(帖L,cu閣r_征e,&pr吐e_抽e);姥//求當橋前元慈素e的前柿驅(qū)Ne悄xt扭El窩em(畫L,cu伶r_作e,&ne伏xt談_e);甘/愚/求當幫前元遞素e的后狠繼Li距st賀In垂se松rtBe沸fo逐re(&L,熄i,盒e抓)虧;未/糖/把e插入脈到第i個元她素之倘前Li藝st亮De抹le京te(&L,i,&e);尚//刪除直第i個元掙素并長“看和”此寇元素Li使st風Tr樸av鐵er詢se(歲L,仔V鄉(xiāng)豐is肢it避()晉)險;濟//剃“看”不表中槳全部艱元素殃(遍央歷)初始慮化、頃撤銷園、清胖空、柱判空割;求表多長、乒表頭盤、表灘尾、燦前趨盛、后竊繼;讀元拖素、駝查找揉(含互定位芝)、沾遍歷款;插入由、刪跳除28si怪ze轉(zhuǎn)of位(x)算符師的意古思是咸:計銅算變俘量x的長撤度(字節(jié)墨數(shù))ma秀ll螺oc(m)函數(shù)航的意紙思是啞:新幅開一笨片大流小為m字節(jié)的連辦續(xù)空侮間,照并把壞該區(qū)毅首址迫作為脅函數(shù)箭值。St籠at騙usIn左it報Li辯st佛_S括q(Sq恩Li爭st&L)//創(chuàng)建票一個絕空線宵性表{L.咽el膛em=(El與em蘿Ty救pe*)ma替ll誦oc(LI奧ST役_I騰NI糾T_糕SI賊ZE*si駕ze唉of管(El鞋em蔑Ty炎pe));If恩(!L.唐el杜em)ex管it浪(OV戰(zhàn)ER山FL略OW);//分配娘失敗見,結塑束程移序L.璃le牽ng鋒th=0言;//暫無轟元素叫放入斥,空采表L.袖li燦st沖si暫ze=LI踩ST僑_I晃NI久T_考SI謝ZE;//表尺繩寸=初始境分配亮量Re碎tu員rnOK;}//In羞it面Li并st扯_S鉛q動態(tài)錄創(chuàng)建芬一個空順序峰表的鞭算法老:29re竭al數(shù)lo紹c(*p,ne揀ws鬼iz隸e)函數(shù)廈的意雷思是僵:新麥開一陳片大餓小為ne紡ws斯iz負e的連添續(xù)空仆間,鐵并把箭以*p為首情址的稅原空拘間數(shù)靈據(jù)都鋒拷貝勻進去駁。動態(tài)底順序店表的咬插入滋算法St消at葉usLi若st蹦In弊se私rt付_S柜q(纏Sq很Li舞st&L,in迷ti,El多em命Ty河pee){//在順爹序線心性表鹽中第i個位兩置之瓜前插宵入新鄰的元品素eif晌(臺i乖<全1ori夢>L.欲le獻ng矮th+1潛)歡re模tu庭rnER虎RO賓R;//檢驗i值的淡合法怪性if冬(L.硬le嚼ng放th≥L.公li劃st拜si聲ze)//若表誘長超蹄過表乖尺寸各則要衛(wèi)增加關尺寸{ne賽wb吩as什e=鬼(El島em成Ty止pe*赤)re脫al來lo崇c(L.田el擦em,(L.診li有st坊si以ze+LI緣瑞STIN夕CR訓EM廟EN蒙T)*si焰ze磨of(El旬em頓Ty戚pe)余);if堅(ne括wb繭as巡壽e=N哭UL珍L筐)e保xi駁t(OV完ER昌FL腥OW)肢;//分配保失敗歌則退麻出并絞報錯L.喪el敲em=ne坊wb蘿as蔽e;//重置藏新基鉛址L.擴li罩st患si偏ze=L.慢li兆st廳si食ze+LI要ST講IN導CR輸EM是EN床T;寄}//增加葉表尺驚寸30q報=&L.豬el其em[i堤-1復]劣;//阻q為插秒入位持置。利這是潤沒有詠頭結窄點的梨情況fo蘿r馬(蛛p蠶=L.簡el駁em[L.榴le音ng坐th-1徑]協(xié);吳p饒>=滋q怠;棗--捧p倡)無*(踢p+淹1)泄=擠*梯p派;//插入狐位置鑒及之棵后的笑元素讓統(tǒng)統(tǒng)泄后移,個p為元嚷素位資置*q=顫e姜;//插入e++L.長le腿ng蜻th;//增加1個數(shù)百據(jù)元賣素,嗎則表虹長+1re銜tu安rnOK;}//Li還st倒In蹤蝶se梯rt臺_S假q動態(tài)鼠數(shù)組娛的核荷心是re蠅al磚lo挽c(v衰oi軋d*pt往r,ne杏ws咐iz筋e)函數(shù)掌!31動態(tài)泛順序創(chuàng)表的瓦刪除褲
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 戰(zhàn)友聚會發(fā)言稿合集15篇
- 成人禮學生發(fā)言稿(范文15篇)
- 感恩父母倡議書(15篇)
- 建筑工地質(zhì)量安全會議
- 土地職業(yè)培訓平臺
- 插花入門基礎知識
- 數(shù)據(jù)專員培訓課件
- 安全健康伴我行班會
- 2025年中考復習必背歷史措施類試題答題模板
- 陰囊積液的高頻彩色多普勒超聲特征分析
- 二零二五版電力設施維修保養(yǎng)合同協(xié)議3篇
- 最經(jīng)典凈水廠施工組織設計
- VDA6.3過程審核報告
- 2024年湖南商務職業(yè)技術學院單招職業(yè)適應性測試題庫帶答案
- 骨科手術中常被忽略的操作課件
- 2024年全國各地中考試題分類匯編:作文題目
- 《糖拌西紅柿 》 教案()
- 彈性力學數(shù)值方法:解析法:彈性力學中的變分原理
- 河南省鄧州市2023-2024學年八年級上學期期末語文試題
- 網(wǎng)絡輿情應對處置培訓課件
- 物流服務項目的投標書
評論
0/150
提交評論