版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第二章線性表線性結(jié)構(gòu)特點(diǎn):在數(shù)據(jù)元素的非空有限集中·存在唯一的一個被稱作“第一個”的數(shù)據(jù)元素·存在唯一的一個被稱作“最后一個”的數(shù)據(jù)元素·除第一個外,集合中的每個數(shù)據(jù)元素均只有一個前驅(qū)·除最后一個外,集合中的每個數(shù)據(jù)元素均只有一個后繼2.1線性表的邏輯結(jié)構(gòu)·定義:一個線性表是n個數(shù)據(jù)元素的有限序列例英文字母表(A,B,C,…..Z)是一個線性表例數(shù)據(jù)元素·特征:·元素個數(shù)n—表長度,n=0空表·1<i<n時ai的直接前驅(qū)是ai-1,a1無直接前驅(qū)ai的直接后繼是ai+1,an無直接后繼·元素同構(gòu),且不能出現(xiàn)缺項2.2線性表的順序存儲結(jié)構(gòu)·順序表:·定義:用一組地址連續(xù)的存儲單元存放一個線性表叫~·元素地址計算方法:LOC(ai)=LOC(a1)+(i-1)*LLOC(ai+1)=LOC(ai)+L其中:L—一個元素占用的存儲單元個數(shù)LOC(ai)—線性表第i個元素的地址·特點(diǎn):實(shí)現(xiàn)邏輯上相鄰—物理地址相鄰實(shí)現(xiàn)隨機(jī)存取·實(shí)現(xiàn):可用C語言的一維數(shù)組實(shí)現(xiàn)a1a2an01n-112n內(nèi)存V數(shù)組下標(biāo)元素序號M-1線性表的動態(tài)分配順序存儲結(jié)構(gòu)#define
LIST_SIZE
100#define
LISTINCREMENT
10typedef
struct
{ElemType
*elem;length;listsize;intint}Sqlist;備用空間·插入·定義:線性表的插入是指在第I(1 i n+1)個元素前插入一個新的數(shù)據(jù)元素x,使長度為n的線性表變成長度為n+1的線性表需將第i至第n共(n-i+1)個元素后移·算法Ch2_1.ca1a2aiai+1an01i-1V數(shù)組下標(biāo)in-1n12i內(nèi)存 元素序號i+1nn+1a1a2ai+101i-1V數(shù)組下標(biāo)in-1n12i內(nèi)存 元素序號i+1nn+1an-1anxai·算法時間復(fù)雜度T(n)設(shè)Pi是在第i個元素之前插入一個元素的概率,則在長度為n的線性表中插入一個元素時,所需移動的元素次數(shù)的平均次數(shù)為:i n)個元素刪·刪除·定義:線性表的刪除是指將第i(1使長度為n的線性表變成長度為n-1的線性表需將第i+1至第n共(n-i)個元素前移·算法Ch2_2.ca1a2aiai+1an01i-1V數(shù)組下標(biāo)in-1n12i內(nèi)存 元素序號i+1nn+1a1a2ai+1V數(shù)組下標(biāo)01i-1in-2n-112i內(nèi)存 元素序號i+1n-1nanai+2·算法評價設(shè)Qi是刪除第i個元素的概率,則在長度為n的線性表中刪除一個元素所需移動的元素次數(shù)的平均次數(shù)為:故在順序表中插入或刪除一個元素時,平均移動表的一半元素,當(dāng)n很大時,效率很低·順序存儲結(jié)構(gòu)的優(yōu)缺點(diǎn)·優(yōu)點(diǎn)邏輯相鄰,物理相鄰可隨機(jī)存取任一元素存儲空間使用緊湊·缺點(diǎn)插入、刪除操作需要移動大量的元素預(yù)先分配空間需按最大空間分配,利用不充分表容量難以擴(kuò)充2.3線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)特點(diǎn):·用一組任意的存儲單元存儲線性表的數(shù)據(jù)元素·利用指針實(shí)現(xiàn)了用不相鄰的存儲單元存放邏輯上相鄰的元素·每個數(shù)據(jù)元素ai,除存儲本身信息外,還需存儲其直接后繼的信息·結(jié)點(diǎn)數(shù)據(jù)域:元素本身信息指針域:指示直接后繼的存儲位置結(jié)點(diǎn)數(shù)據(jù)域指針域ZHAOQIANSUNLIZHOUWUZHENGWANG^H例線性表
(ZHAO,QIAN,SUN,LI,ZHOU,WU,ZHENG,WANG)43131NULL3771925數(shù)據(jù)域
指針域LIQIANSUNWANGWUZHAOZHENGZHOU存儲地址17131925313743H31頭指針·實(shí)現(xiàn)typedef
struct
Lnode
{ElemType
data;struct
Lnode
*next;}Lnode,*LinkList;生成一個LinkList型新結(jié)點(diǎn):p=(LinkList)malloc(sizeof(Lnode));系統(tǒng)回收p結(jié)點(diǎn):free(p)·線性鏈表·定義:結(jié)點(diǎn)中只含一個指針域的鏈表叫~,也叫單鏈表頭結(jié)點(diǎn):在單鏈表第一個結(jié)點(diǎn)前附設(shè)一個結(jié)點(diǎn)叫~頭結(jié)點(diǎn)指針域?yàn)榭毡硎揪€性表為空ha1a2頭結(jié)點(diǎn)an
^…...h空表^·單鏈表的基本運(yùn)算px查找:查找單鏈表中是否存在結(jié)點(diǎn)X,若有則返回指向X結(jié)點(diǎn)的指針;否則返回NULL算法描述算法評價若找到結(jié)點(diǎn)X,為結(jié)點(diǎn)X在表中的序號While循環(huán)中語句頻度為否則,為n插入:在線性表兩個數(shù)據(jù)元素a和b間插入x,已知p指向abs->next=p->next;ap->next=ss;算法描述算法評價算法描述算法評價刪除:單鏈表中刪除b,設(shè)p指向ap a b cp->next=p->next->next;動態(tài)建立單鏈表算法:設(shè)線性表n個元素已存放在數(shù)組a中,建立一個單鏈表,h為頭指針?biāo)惴枋鏊惴ㄔu價anan-1a12
^ana…2
..^.an
^an…-1
...Ch2_3.ch頭結(jié)點(diǎn)0^·單鏈表特點(diǎn)它是一種動態(tài)結(jié)構(gòu),整個存儲空間為多個鏈表共用不需預(yù)先分配空間指針占用額外存儲空間不能隨機(jī)存取,查找速度慢·循環(huán)鏈表(circular
linked
list)·循環(huán)鏈表是表中最后一個結(jié)點(diǎn)的指針指向頭結(jié)點(diǎn),使鏈表構(gòu)成環(huán)狀·特點(diǎn):從表中任一結(jié)點(diǎn)出發(fā)均可找到表中其他結(jié)點(diǎn),提高查找效率·操作與單鏈表基本一致,循環(huán)條件不同單鏈表p或p->next=NULL循環(huán)鏈表p或p->next=Hhh空表·雙向鏈表(doublelinkedlist)單鏈表具有單向性的缺點(diǎn)·結(jié)點(diǎn)定義typedef
struct
Dulnode
{elemtype
data;struct
Dulnode
*prior,*next;}
Dulnode,*Dulinklist;priordatanextL空雙向循環(huán)鏈表:ABbc非空雙向循環(huán)鏈表a:Lpp->prior->next=
p=
p->next->proir;b
cavoid
del_dulist(Dulinklist
p){p->prior->next=p->next;p->next->prior=p->prior;free(p);}·刪除算法描述算法評價:T(n)=O(1)p->prior->next=p->next;p->next->prior=p->priorPvoid
ins_dulist(Dulinklist
p,int
x){Dulinklist
s;s=(Dulinklist)malloc(sizeof(Dulnode
s->data=x;s->prior=p->prior;p->prior->next=s;s->next=p;p->prior=s;}算法描述算法評價:T(n)=O(1)xSbaP·插入2.4線性表的應(yīng)用舉例一元多項式的表示及相加·一元多項式的表示:可用線性表P表示但對S(x)這樣的多項式浪費(fèi)空間一般其中用數(shù)據(jù)域含兩個數(shù)據(jù)項的線性表表示其存儲結(jié)構(gòu)可以用順序存儲結(jié)構(gòu),也可以用單鏈表·單鏈表的結(jié)點(diǎn)定義typedef
struct
node{
int
coef,exp;struct
node
*next;coefexpnextABC-1703198517^-181227-98^-170111227517^}JD;·一元多項式相加比較p->exp與q->exp設(shè)p,q分別指向A,B中某一結(jié)點(diǎn),p,q初值是第一結(jié)點(diǎn)p->exp<q->exp:p結(jié)點(diǎn)是和多項式中的一項p后移,q不動p->exp=q->exp:系數(shù)相加p->exp>q->exp:q結(jié)點(diǎn)是和多項式中的一項將q插在p之前,q后移,p不動0:從A表中刪去p,釋放p,q,p,q后移0:修改p系數(shù)域,釋放q,p,q后移若q==NULL,結(jié)束直到p或q為NULL若p==
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026云南金江滄源水泥工業(yè)有限公司專業(yè)技術(shù)崗招聘5人考試筆試備考題庫及答案解析
- 深度解析(2026)《GBT 25667.3-2010整體硬質(zhì)合金直柄麻花鉆 第3部分:技術(shù)條件》(2026年)深度解析
- 2026貴州黎平肇興文化旅游開發(fā)(集團(tuán))有限公司招聘18人備考筆試試題及答案解析
- 《買礦泉水》數(shù)學(xué)課件教案
- 2025六枝特區(qū)公共汽車運(yùn)輸公司招聘16人筆試考試參考題庫及答案解析
- 2025云南昆明醫(yī)科大學(xué)科學(xué)技術(shù)處招聘科研助理崗位工作人員6人筆試考試備考題庫及答案解析
- 2025云南昆華醫(yī)院投資管理有限公司(云南新昆華醫(yī)院)招聘(3人)參考考試試題及答案解析
- 2025年銅陵市義安經(jīng)開區(qū)管委會公開招聘編外聘用人員1名模擬筆試試題及答案解析
- 2025年昆明市呈貢區(qū)城市投資集團(tuán)有限公司附下屬子公司第二批招聘(11人)參考筆試題庫附答案解析
- 25江西南昌動物園招聘1人備考考試試題及答案解析
- GB/T 4957-2003非磁性基體金屬上非導(dǎo)電覆蓋層覆蓋層厚度測量渦流法
- GB/T 27806-2011環(huán)氧瀝青防腐涂料
- GB/T 12618.1-2006開口型平圓頭抽芯鉚釘10、11級
- FZ/T 52051-2018低熔點(diǎn)聚酯(LMPET)/聚酯(PET)復(fù)合短纖維
- 設(shè)備吊裝方案編制受力計算
- 食品工程原理概述經(jīng)典課件
- 養(yǎng)老院機(jī)構(gòu)組織架構(gòu)圖
- 財經(jīng)法規(guī)與會計職業(yè)道德
- 會計學(xué)本-財務(wù)報表分析綜合練習(xí)
- 傳播學(xué)概論教學(xué)課件
- 《中國傳統(tǒng)文化心理學(xué)》課件第五章 傳統(tǒng)文化與心理治療(修)
評論
0/150
提交評論