




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
5.1數(shù)組的類型定義5.3矩陣的壓縮存儲(chǔ)5.2數(shù)組的順序存儲(chǔ)5.4廣義表的類型定義5.5廣義表的表示方法第五章數(shù)組和廣義表前幾章介紹的數(shù)據(jù)結(jié)構(gòu)都是線性結(jié)構(gòu),數(shù)據(jù)元素都屬于原子類型,其值不分解使用。本章討論的多維數(shù)組和廣義表是線性結(jié)構(gòu)的推廣,從整體上看它們是多個(gè)元素組成的線性表,而從局部上看線性表中的數(shù)據(jù)元素不一定是原子類型,即數(shù)據(jù)元素又可以具有某種數(shù)據(jù)結(jié)構(gòu)。ADTArray{
數(shù)據(jù)對(duì)象:
D={aj1j2...jn|ji=0,...,bi-1,i=1,2,..,n}
數(shù)據(jù)關(guān)系:
R={R1,R2,...,Rn}Ri={<aj1,...ji,...jn,aj1,...ji+1,...jn>|0
jk
bk-1,1
k
n且k
i,0
ji
bi-2,i=2,...,n}
}ADTArray基本操作:n維數(shù)組5.1數(shù)組的類型定義數(shù)組是由類型相同的數(shù)據(jù)元素構(gòu)成的有序集合,每個(gè)元素受n(n>=1)個(gè)線性關(guān)系的約束,二維數(shù)組Am*n的定義:數(shù)據(jù)對(duì)象:
D={aij|0≤i≤b1-1,0≤j≤b2-1}數(shù)據(jù)關(guān)系:
R={ROW,COL}
ROW={<ai,j,ai+1,j>|0≤i≤b1-2,0≤j≤b2-1}
COL={<ai,j,ai,j+1>|0≤i≤b1-1,0≤j≤b2-2}m-1n-1二維數(shù)組可以看成是由多個(gè)一維數(shù)組組成的。例如,二維數(shù)組Amn既可看成由m個(gè)行向量組成的線性表,也可看成是由n個(gè)列向量組成的線性表。數(shù)組具有以下性質(zhì):(1)數(shù)組中的數(shù)據(jù)元素?cái)?shù)目固定。一旦定義了一個(gè)數(shù)組,其數(shù)據(jù)元素?cái)?shù)目不再有增減變化。(2)數(shù)組中的數(shù)據(jù)元素具有相同的數(shù)據(jù)類型。(3)數(shù)組中的每個(gè)數(shù)據(jù)元素都和一組惟一的下標(biāo)值對(duì)應(yīng)。(4)數(shù)組是一種隨機(jī)存儲(chǔ)結(jié)構(gòu)??呻S機(jī)存取數(shù)組中的任意數(shù)據(jù)元素。(5)數(shù)組中的每個(gè)數(shù)據(jù)元素都受n個(gè)關(guān)系制約。(6)n個(gè)關(guān)系仍是線性關(guān)系?;静僮鳎篒nitArray(&A,n,bound1,...,boundn)Value(A,&e,index1,...,indexn)Assign(&A,e,index1,...,indexn)InitArray(&A,n,bound1,...,boundn)
操作結(jié)果:若維數(shù)n和各維長(zhǎng)度合法,則構(gòu)造相應(yīng)的數(shù)組A,并返回OK。Value(A,&e,index1,...,indexn)
初始條件:A是n維數(shù)組,e為元素變量,隨后是n個(gè)下標(biāo)值。
操作結(jié)果:若各下標(biāo)不超界,則e賦值為所指定的A的元素值,并返回OK。
Assign(&A,e,index1,...,indexn)
初始條件:A是n維數(shù)組,e為元素變量,隨后是n個(gè)下標(biāo)值。
操作結(jié)果:若下標(biāo)不超界,則將e的值賦給所指定的A的元素,并返回OK。5.2數(shù)組的順序表示和實(shí)現(xiàn)
類型特點(diǎn):1)只有報(bào)告/觀察型操作,沒有結(jié)構(gòu)加工型操作;2)數(shù)組是多維的結(jié)構(gòu),而存儲(chǔ)空間是一個(gè)一維的結(jié)構(gòu)。
有兩種順序映象的方式:1)以行序?yàn)橹餍?低下標(biāo)優(yōu)先);2)以列序?yàn)橹餍?高下標(biāo)優(yōu)先)。例如:
稱為基地址或基址。以“行序?yàn)橹餍颉钡拇鎯?chǔ)映象二維數(shù)組A中任一元素ai,j的存儲(chǔ)位置LOC(ai,j)=LOC(a0,0)+(b2×i+j)×a0,1a0,0a0,2a1,0a1,1a1,2a0,1a0,0a0,2a1,0a1,1a1,2L
L
推廣到一般情況,可得到n維數(shù)組數(shù)據(jù)元素存儲(chǔ)位置的映象關(guān)系稱為n維數(shù)組的映象函數(shù)。數(shù)組元素的存儲(chǔ)位置是其下標(biāo)的線性函數(shù)。其中cn=L,ci-1=bi×ci,1<i
n。LOC(j1,j2,...,jn)=LOC(0,0,...,0)+∑ciji
i=1n數(shù)組存儲(chǔ)結(jié)構(gòu)具有隨機(jī)存儲(chǔ)結(jié)構(gòu)特點(diǎn)。假設(shè)m行n列的矩陣含t個(gè)非零元素,則稱為稀疏因子。通常認(rèn)為
0.05的矩陣為稀疏矩陣。5.3矩陣的壓縮存儲(chǔ)何謂稀疏矩陣?二維數(shù)組存儲(chǔ)出現(xiàn)的問(wèn)題?1)盡可能少存或不存零值元素;解決問(wèn)題的原則:2)盡可能減少?zèng)]有實(shí)際意義的運(yùn)算;3)操作方便。即:能盡可能快地找到與下標(biāo)值(i,j)對(duì)應(yīng)的元素,能盡可能快地找到同一行或同一列的非零值元。1)特殊矩陣
非零元在矩陣中的分布有一定規(guī)則例如:三角矩陣對(duì)角矩陣2)隨機(jī)稀疏矩陣非零元在矩陣中隨機(jī)出現(xiàn)有兩類稀疏矩陣:1.下三角矩陣的壓縮存儲(chǔ)用長(zhǎng)度為n(n+1)/2的一維數(shù)組B,一行接一行存放A中下三角部分的元素。用長(zhǎng)度為n(n+1)/2的一維數(shù)組B,一列接一列存放A中下三角部分的元素。1)特殊矩陣2.對(duì)稱矩陣的壓縮存儲(chǔ)對(duì)稱矩陣:a[i,j]=a[j,i]以行為主3.三對(duì)角矩陣的壓縮存儲(chǔ)用一個(gè)長(zhǎng)度為3n-2的一維數(shù)組B存放三條對(duì)角線上的元素隨機(jī)稀疏矩陣的壓縮存儲(chǔ)方法:一、三元組順序表二、十字鏈表2)隨機(jī)稀疏矩陣
#defineMAXSIZE12500
typedefstruct{
inti,j;//該非零元的行下標(biāo)和列下標(biāo)
ElemTypee;//該非零元的值
}Triple;//三元組類型一、三元組順序表typedef{
Tripledata[MAXSIZE+1];
//非零元三元組表,data[0]未用
intmu,nu,tu;//矩陣的行數(shù),列數(shù),非零元個(gè)數(shù)}TSMatrix;//稀疏矩陣類型typedefstructOLNode{inti;//*非零元的行下標(biāo)*/ intj;//*非零元的列下標(biāo)*/ Elemtypee;//*非零元的數(shù)據(jù)元素值*/ structOLNode*right;//*非零元所在行表的后繼鏈域*/ structOLNode*down;//*非零元所在列表的后繼鏈域*/}OLNode;*
OLink;typedefstruct{
OLink*rhead;//*用于存放行表的頭指針*/
OLink*chead;//*用于存放列表的頭指針*/ intmu; //*表示矩陣的行數(shù)的個(gè)數(shù)*/ intnu; //*表示矩陣的列數(shù)*/ inttu; //*表示矩陣中非零元的個(gè)數(shù)*/}CrossList;三、十字鏈表三、十字鏈表30050-100200011314522-1312^^^^^^^5.4廣義表的類型定義ADTGlist{
數(shù)據(jù)對(duì)象:D={ei|i=1,2,..,n;n≥0;ei∈AtomSet或ei∈GList,AtomSet為某個(gè)數(shù)據(jù)對(duì)象}
數(shù)據(jù)關(guān)系:LR={<ei-1,ei>|ei-1,ei∈D,2≤i≤n}}ADTGlist基本操作:廣義表被廣泛地應(yīng)用于人工智能等領(lǐng)域的表處理語(yǔ)言LISP語(yǔ)言中。廣義表是遞歸定義的多層次的線性結(jié)構(gòu)。
LS=(
1,
2,
,
n)其中:
i或?yàn)樵踊驗(yàn)閺V義表例如:A=()
B=(a,b)C=(c,B)D=(B,C,d)E=(a,E)共享遞歸共享廣義表LS=(
1,
2,…,
n)的結(jié)構(gòu)特點(diǎn):1)廣義表中的數(shù)據(jù)元素有相對(duì)次序;2)廣義表的長(zhǎng)度定義為最外層包含元素個(gè)數(shù);3)廣義表的深度定義為所含括弧的重?cái)?shù);注意:“原子”的深度為0
“空表”的深度為14)廣義表可以共享;5)廣義表可以是一個(gè)遞歸的表。遞歸表的深度是無(wú)窮值,長(zhǎng)度是有限值。6)任何一個(gè)非空廣義表LS=(
1,
2,…,
n)均可分解為
表頭Head(LS)=
1和
表尾Tail(LS)=(
2,…,
n)兩部分。例如:
D=(E,F)=((a,(b,c)),F(xiàn))Head(D)=ETail(D)=(F)Head(E)=aTail(E)=((b,c))Head(((b,c)))=(b,c)Tail(((b,c)))=()Head((b,c))=bTail((b,c))=(c)Head((c))=cTail((c))=()1.廣義表的頭尾鏈表存儲(chǔ)結(jié)構(gòu)5.5廣義表的存儲(chǔ)結(jié)構(gòu)2.擴(kuò)展線性鏈表存儲(chǔ)結(jié)構(gòu)廣義表A、B、C、D的存儲(chǔ)結(jié)構(gòu)C=(a,C)B=(A,A,D)A=(a,(b,c))D=()廣義表的頭尾鏈表存儲(chǔ)結(jié)構(gòu)廣義表的另一種結(jié)點(diǎn)結(jié)構(gòu)Tag=1hptpTag=0atomtp表結(jié)點(diǎn)原子結(jié)點(diǎn)D=()A=(a,(b,c))B=(A,A,D)C=(a,C)擴(kuò)展線性鏈表存儲(chǔ)結(jié)構(gòu):1.了解數(shù)組的兩種存儲(chǔ)表示方法,并掌握數(shù)組在以行為主的存儲(chǔ)結(jié)構(gòu)中的地址計(jì)算方法。2.掌握對(duì)特殊矩陣進(jìn)行壓縮存儲(chǔ)時(shí)的下標(biāo)變換公式。3.了解稀疏
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《陽(yáng)光寶貝幼兒園》課件
- 《植物的生態(tài)與生長(zhǎng)》課件
- 孩子做家務(wù)的收獲和心得感悟(4篇)
- 蘇州冷庫(kù)施工方案
- 吊繩保溫施工方案
- 成都勞動(dòng)合同(16篇)
- 《顱內(nèi)動(dòng)脈瘤介入治療后的康復(fù)之路》課件
- 小學(xué)老師開學(xué)第一課的發(fā)言稿范文(14篇)
- 2025年石家莊貨運(yùn)b2從業(yè)資格證考試卷
- 2025年咸陽(yáng)貨運(yùn)從業(yè)資格證模擬考試駕考
- 組裝檢查記錄表
- 小學(xué)部編版六年級(jí)下冊(cè)道德與法治《4、地球-我們的家園》第一課時(shí)說(shuō)課稿
- DB11T 1340-2022 居住建筑節(jié)能工程施工質(zhì)量驗(yàn)收規(guī)程
- 保險(xiǎn)市場(chǎng)調(diào)查與分析實(shí)訓(xùn)三任務(wù)一2.3.1任務(wù)一運(yùn)用Excel整理市場(chǎng)調(diào)查問(wèn)卷數(shù)據(jù)
- 中央空調(diào)(多聯(lián)機(jī))施工方案
- PKPM磚混結(jié)構(gòu)抗震及其他計(jì)算全攻略
- “育鯤”輪轉(zhuǎn)葉式舵機(jī)工作原理和電氣控制以及故障分析
- 流動(dòng)資金自動(dòng)測(cè)算表(內(nèi)自帶計(jì)算公式)
- 最新.爾雅批判與創(chuàng)意思考--馮林答案
- 宿州光伏玻璃項(xiàng)目可行性研究報(bào)告(范文模板)
- 10KV變電站施工方案
評(píng)論
0/150
提交評(píng)論