版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章 線性表(一)講授內(nèi)容:(一)講授內(nèi)容:1、線性表的類型定義。2、線性表的順序表示和實(shí)現(xiàn)。3、線性表的鏈?zhǔn)奖硎竞蛯?shí)現(xiàn)。4、一元多項(xiàng)式的表示及相加。(二二) 教學(xué)要求:教學(xué)要求:1、了解線性表的邏輯結(jié)構(gòu)特性(數(shù)據(jù)元素之間存在著線性關(guān)系),在計(jì)算機(jī)中表示線性表數(shù)據(jù)元素關(guān)系的兩種方法:順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),以及由兩種關(guān)系表示得到的順序表、鏈表。2、熟練掌握這兩種存儲(chǔ)結(jié)構(gòu)的描述方法。3、熟練掌握線性表在順序存儲(chǔ)結(jié)構(gòu)上的各種基本操作:查找、插入和刪除的算法。4、熟練掌握在各種鏈表結(jié)構(gòu)中實(shí)現(xiàn)線性表操作的基本方法,能在實(shí)際應(yīng)用中選用適當(dāng)?shù)逆湵斫Y(jié)構(gòu)。了解靜態(tài)鏈表的定義及實(shí)現(xiàn)方法。5、能夠從時(shí)間和空
2、間復(fù)雜度的角度綜合比較線性表兩種存儲(chǔ)結(jié)構(gòu)的不同特點(diǎn)、各種操作的算法復(fù)雜度分析及其適用場(chǎng)合。(三)教學(xué)重難點(diǎn):(三)教學(xué)重難點(diǎn): 教學(xué)重點(diǎn):教學(xué)重點(diǎn): 線性表的基本概念、順序表的實(shí)現(xiàn)及應(yīng)用;單鏈表、循環(huán)鏈表以及雙向鏈表的定義、實(shí)現(xiàn)及應(yīng)用。 教學(xué)難點(diǎn):教學(xué)難點(diǎn): 實(shí)現(xiàn)鏈表刪除與插入操作時(shí)指針的變化以及特殊情況處理。 學(xué)時(shí)分配:學(xué)時(shí)分配:本章共講授12學(xué)時(shí)。 線性結(jié)構(gòu)的特點(diǎn) 在數(shù)據(jù)元素的非空有限集中 存在唯一的一個(gè)被稱作“第一個(gè)第一個(gè)”的數(shù)據(jù)元素 存在唯一的一個(gè)被稱作“最后一個(gè)最后一個(gè)”的數(shù)據(jù)元素 除第一個(gè)外,集合中的每個(gè)數(shù)據(jù)元素均只有一個(gè)前驅(qū)前驅(qū) 除最后一個(gè)外,集合中的每個(gè)數(shù)據(jù)元素均只有一個(gè)后繼后
3、繼2.1 線性表的類型定義 線性表(Linear List) :由n(n0)個(gè)數(shù)據(jù)元素組成的有限序列,這里的數(shù)據(jù)元素只是一個(gè)抽象的符號(hào),其具體含義在不同的情況下可以不同:數(shù)據(jù)元素可以是原子類型,也可以是結(jié)構(gòu)類型。線性表舉例 例 英文字母表(A,B,C,.Z)是一個(gè)線性表 例 計(jì)算機(jī)擁有量(6,17,28,50,92,188) 復(fù)雜線性表中的一個(gè)數(shù)據(jù)元素可由若干數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)組成(結(jié)構(gòu)類型),此時(shí)又把數(shù)據(jù)元素稱作記錄記錄,把含有大量記錄的線性表稱作文件文件。 例學(xué)號(hào)姓名年齡001張三18002李四19數(shù)據(jù)元素文件文件數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)線性表特征 線性表中的元素具有相同屬性, 相鄰元素之間存在序偶關(guān)系,1
4、i0時(shí)通常表示成下列形式:),.,.,(121niiaaaaaL線性表的ADT 講解:P19 注意:數(shù)據(jù)結(jié)構(gòu)的基本運(yùn)算,不是它的全部運(yùn)算。每一個(gè)基本運(yùn)算在實(shí)現(xiàn)時(shí)可根據(jù)不同的存儲(chǔ)結(jié)構(gòu)派生出一系列相關(guān)的運(yùn)算來(lái)。 例:線性表的查找在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中還會(huì)有按序號(hào)查找 例:插入運(yùn)算,可以是將新元素插入到適當(dāng)位置上 建議:掌握了某一數(shù)據(jù)結(jié)構(gòu)上的基本運(yùn)算后,其它的運(yùn)算可以通過(guò)基本運(yùn)算來(lái)實(shí)現(xiàn),也可以直接去實(shí)現(xiàn)。 線性表的高級(jí)操作 合并 分拆 復(fù)制 P20例子2.1 線性表的合并 利用兩個(gè)線性表LA和LB分別表示兩個(gè)集合A和B,現(xiàn)要求一個(gè)新的集合A=AB。 集合的合并運(yùn)算說(shuō)明:1、 LB中與LA中相同的元素不予合
5、并。2 、不另建新線性表,只需擴(kuò)大表LA,將LB中需要并入的元素插入到LA中。3 、LB中需要并入的元素作為L(zhǎng)A的尾元素插入。 算法2.1void union(List &La,List Lb) /將所有在線形表Lb中但不在La中的數(shù)據(jù)元素插入到La中 La_len=ListLength(La); Lb_len=ListLength(Lb);/求線形表的長(zhǎng)度 for(i=1; i =lb_len; i +) GetElem(Lb, i ,e);/取Lb中第 i個(gè)數(shù)據(jù)元素賦給e if(!LocateElem(La,e,equal) ListInsert(La,+La-len,e); /
6、La中不存在和e相同的元素,則插入之 并集運(yùn)算算法時(shí)間復(fù)雜度分析 查找一個(gè)元素LB(i)是否在表LA中,需要掃描 整 個(gè) 表 L A , 即 進(jìn) 行 比 較 的 時(shí) 間 為O(ListLenth(LA);每插入一個(gè)元素所需時(shí)間為常數(shù)時(shí)間O(1);共調(diào)用ListLenth(LB)次元素查找過(guò)程,插入元素的個(gè)數(shù)不會(huì)大于LB的長(zhǎng)度ListLenth(LB) ,所需查找時(shí)間的復(fù)雜度為O(ListLenth(LA) * ListLenth(LB)。例子2.2 線性表的歸并 例2-2 巳知線性表LA和線性表LB中的數(shù)據(jù)元素按值非遞減有序排列,現(xiàn)要求將LA和LB歸并為一個(gè)新的線性表LC,且LC中的元素仍按值
7、非遞減有序排列。例子2.2 線性表的歸并算法的思想: 從上述問(wèn)題要求可知,LC中的數(shù)據(jù)元素或是LA中的數(shù)據(jù)元素,或是LB中的數(shù)據(jù)元素,則只要先設(shè)LC為空表,然后將LA或LB中的元素逐個(gè)插入到LC即可。 為了使得LC中的元素按值非遞減有序排列,可分別設(shè)兩個(gè)指針i和j分別指向LA和LB中的某個(gè)元素,若設(shè)i當(dāng)前所指的元素為a,j當(dāng)前所指的元素為b,則當(dāng)前應(yīng)插入到LC中的元素c為: 顯然,指針i和j的初值均為1,在所指元素插入到LC之后,在LA或LB中順序后移。 bawhenbbawhenac例2.2 線性表的歸并例如,設(shè) LA=(3,5,8,11) LB=(2,6,8,9,11,15,20)則 LC
8、=(2,3,5,6,8,8,9,11,15,20)算法2.2void Merge List( List La, List Lb, List &Lc )/已知線性表La和Lb中的數(shù)據(jù)元素按值非遞減排列。 InitList( Lc ); i = j = 1; k = 0; La_len = ListLength( La ); Lb_len = ListLength( Lb ); while( ( i= La_len ) &( j=Lb_len) )/La和Lb均非空 GetElem( La, i, ai ); GetElem( Lb, j, bj ); if ( ai = bj )
9、 ListInsert(Lc, +k, ai); +i; else ListInsert(Lc, +k, bj); +j; /當(dāng)其中一個(gè)線形表的數(shù)據(jù)元素均已插入到線形表Lc中后,只要將另外一個(gè)線形表中的剩余元素依次插入即可。 while ( i= la_len ) GetElem( La, I+, ai ); ListInsert( Lc, +k, ai ); while ( j= lb_len ) GetElem( La, j+, bj); ListInsert( Lc, +k, ai ); / Merge List歸并算法時(shí)間復(fù)雜度分析歸并算法的時(shí)間復(fù)雜度為:O(ListLenth(A)+ListLenth(B)。 雖然歸并算法中含3個(gè)(wh
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度草莓種植基地環(huán)境保護(hù)與可持續(xù)發(fā)展合同3篇
- 二零二五年度換崗勞動(dòng)合同補(bǔ)充協(xié)議(高端裝備制造)2篇
- 二零二四年珍貴花卉苗木銷售合同范本3篇
- 二零二四年研學(xué)旅行專業(yè)導(dǎo)師派遣合同3篇
- 二零二五年度出租屋租賃信息化管理系統(tǒng)合同協(xié)議書(shū)4篇
- 2025版抹灰施工項(xiàng)目合同履行監(jiān)督協(xié)議書(shū)3篇
- 二零二四年度醫(yī)療服務(wù)補(bǔ)充合同
- 二零二五年度社會(huì)安全風(fēng)險(xiǎn)評(píng)估咨詢合同2篇
- 二零二四年度知名品牌商標(biāo)權(quán)轉(zhuǎn)讓及許可合同3篇
- 貴陽(yáng)市手上記憶博物館發(fā)展研究
- 乳腺癌的綜合治療及進(jìn)展
- 【大學(xué)課件】基于BGP協(xié)議的IP黑名單分發(fā)系統(tǒng)
- 2025年八省聯(lián)考高考語(yǔ)文試題真題解讀及答案詳解課件
- 信息安全意識(shí)培訓(xùn)課件
- 2024年山東省泰安市初中學(xué)業(yè)水平生物試題含答案
- 美的MBS精益管理體系
- 中國(guó)高血壓防治指南(2024年修訂版)解讀課件
- 2024安全員知識(shí)考試題(全優(yōu))
- 2024年衛(wèi)生資格(中初級(jí))-中醫(yī)外科學(xué)主治醫(yī)師考試近5年真題集錦(頻考類試題)帶答案
- 中國(guó)大百科全書(shū)(第二版全32冊(cè))08
- 第六單元 中華民族的抗日戰(zhàn)爭(zhēng) 教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版八年級(jí)歷史上冊(cè)
評(píng)論
0/150
提交評(píng)論