版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章數(shù)組回憶前面幾章學(xué)習(xí)的線性結(jié)構(gòu):線性表、棧、隊(duì)列、串要求數(shù)據(jù)結(jié)構(gòu)中的元素必須有相同的屬性,即數(shù)據(jù)類型其中元素的數(shù)據(jù)類型只要相同即可,當(dāng)然也可以就是一個(gè)數(shù)據(jù)結(jié)構(gòu)。問(wèn)題:數(shù)組與線性表的區(qū)別與聯(lián)系
相同之處:它們都是若干個(gè)相同數(shù)據(jù)類型的數(shù)據(jù)元素a0,a1,a2,…,an-1構(gòu)成的有限序列。
不同之處:
(1)數(shù)組要求其元素占用一塊地址連續(xù)的內(nèi)存單元空間,而線性表無(wú)此要求;(2)線性表的元素是邏輯意義上不可再分的元素,而數(shù)組中的每個(gè)元素還可以是一個(gè)數(shù)組;(3)數(shù)組的操作主要是向某個(gè)下標(biāo)的數(shù)組元素中存放數(shù)據(jù)和取某個(gè)下標(biāo)的數(shù)組元素,這與線性表的插入和刪除操作不同。本講內(nèi)容5.1數(shù)組的定義1.數(shù)組2.數(shù)組的邏輯定義5.2數(shù)組的順序存儲(chǔ)5.3矩陣的壓縮存儲(chǔ)1.特殊矩陣2.稀疏矩陣數(shù)組數(shù)組邏輯上是線性結(jié)構(gòu)的推廣;數(shù)組是以線性表為元素的線性結(jié)構(gòu),而且元素的結(jié)構(gòu)相同;數(shù)組可以看作是下標(biāo)和值的偶對(duì)的集合;數(shù)組是一種邏輯結(jié)構(gòu)。高級(jí)語(yǔ)言中的數(shù)組inta[10];a[0]a[1]a[2]a[3]……a[10-1]charB[4][5];B[0][0]B[0][1]B[0][2]B[0][3]B[0][5-1]B[1][0]B[1][1]……B[1][5-1]B[2][0]B[2][1]……B[2][5-1]B[3][0]B[3][1]……B[3][5-1]二維數(shù)組inta[2][3];兩個(gè)變量組成的一個(gè)數(shù)組,其中每一個(gè)變量都是數(shù)組。其中a[0],a[1]都是數(shù)組的名字,也就是地址。
a[0][1]a[0][0]a[1][2]a[1][1]a[1][0]a[0][2]數(shù)組的邏輯定義
n(n>1)維數(shù)組是一個(gè)向量,它的每個(gè)元素是n-1維數(shù)組,且具有相同的上限和下限。
()nAaaa,,,21=……()mjjjjaaaa,,,21=……()mAbbb,,,21=……()iniii,,,21=……bbbbúúúú?ùêêêê?é=mnmmnnnmaaaaaaaaaA212222111211………………………………[][[[]]]×úúúúú?ùêêêêê?éúúúú?ùêêêê?éúúúú?ùêêêê?éúúúú?ùêêêê?é=mnnnmmnmaaaaaaaaaA212221212111…………………×數(shù)組的抽象數(shù)據(jù)類型ADTArray{
數(shù)據(jù)對(duì)象:ji=0,…,bi-1,i=1,2,…,n,D={aj1j2…,jn|n(>0)稱為數(shù)組的維數(shù),bi是數(shù)組第i維的長(zhǎng)度,ji是第i維的下標(biāo),aj1j2…,jn∈ElemSet}
數(shù)據(jù)關(guān)系:
R={R1,R2,R3,……,Rn}Ri={<aj1…ji……jn,aj1…ji+1……jn>|0≤jk≤bk-1,1≤k≤n且k≠i,0≤ji≤bi-2
基本操作:
Value(A,&e,index1,…,indexn)
Assign(&A,e,index1,…,indexn)}ADTArray數(shù)組的操作對(duì)于數(shù)組的操作一般只有兩類:(1)給定一組下標(biāo),存取相應(yīng)的數(shù)據(jù)元素(2)給定一組下標(biāo),修改相應(yīng)的數(shù)據(jù)元素的值。數(shù)組一般不做插入和刪除操作數(shù)組的存儲(chǔ)實(shí)現(xiàn)機(jī)制1、一維數(shù)組(n個(gè)元素)中任一元素ai的內(nèi)存單元地址LOC(ai)=LOC(a0)+i*k(0≤i<n)2、一個(gè)m行n列的二維數(shù)組LOC(aij)=LOC(a00)+(i*n+j)*k(0≤i<m,0≤j<n)注:C語(yǔ)言中數(shù)組元素采用行主序的存放方法,即行優(yōu)先順序。順序存儲(chǔ)時(shí)按行序和列序的約定數(shù)組順序存儲(chǔ)時(shí),必須確定按行序或列序存儲(chǔ):(1)PASCAL、C以行序?yàn)橹鞔鎯?chǔ)(2)FORTRAN以列序?yàn)橹鞔鎯?chǔ)a11
a12
…
a1n
a21
a22
…
a2n
…
am1
am2
…
amn
a11
a21
…
am1
a12
a22
…
am2
…
a1n
a2n
…
amn
以行為主序以列為主序例如:
稱為基地址或基址。以“行序?yàn)橹餍颉钡拇鎯?chǔ)映象二維數(shù)組A中任一元素ai,j的存儲(chǔ)位置LOC(i,j)=LOC(0,0)+(b2×i+j)×a0,1a0,0a0,2a1,0a1,1a1,2a0,1a0,0a0,2a1,0a1,1a1,2L
L
設(shè)二維數(shù)組A[c1..d1][c2..d2]
其中c1、c2和d1、d2分別為二維數(shù)組A的下標(biāo)的下界和上界,每個(gè)數(shù)組元素占L個(gè)存儲(chǔ)單元,設(shè)第一個(gè)元素A[c1][c2]的存儲(chǔ)位置為L(zhǎng)OC(c1,c2),則該二維數(shù)組中任一元素A[i][j]
(
c1≤i≤d1,c2≤j≤d2)的存儲(chǔ)位置可由下式確定:
LOC(i,j)=LOC(c1,c2)+[(i-c1)*(d2-c2+1)+(j-c2)]*L在C語(yǔ)言中,下標(biāo)從零開(kāi)始,即:A[0..d1][0..d2],則數(shù)組元素A[i][j]的存儲(chǔ)位置是
LOC(i,j)=LOC(0,0)+(i*(d2+1)+j)*L
矩陣的壓縮存儲(chǔ)壓縮存儲(chǔ)思想當(dāng)矩陣的階數(shù)較高,而且矩陣中的一些元素有特殊的性質(zhì)時(shí),可以采用節(jié)省空間的存儲(chǔ)辦法(壓縮存儲(chǔ))。兩類矩陣1.特殊矩陣:值相同的元素或非零元素分布有一定的規(guī)律;2.稀疏矩陣:非零元素少且分布無(wú)規(guī)律;對(duì)稱矩陣、上(下)三角矩陣、對(duì)角矩陣特殊矩陣——對(duì)稱矩陣若n階方陣A中的元素滿足下述性質(zhì):
aij=aji
1≤i,j≤n則稱A為n階對(duì)稱矩陣。a11
a21
a22
a31
…
an1
…
ann
k=0123
n2個(gè)元素可以壓縮到n(n+1)/2個(gè)空間中;以行序?yàn)橹餍驅(qū)⑵湎氯牵ò▽?duì)角線)中的元素存儲(chǔ)到一個(gè)向量B[n(n+1)/2]中:特殊矩陣——對(duì)稱矩陣向量B[k]和矩陣中的元素aij之間存在著一一對(duì)應(yīng)關(guān)系:
下面按下標(biāo)從0開(kāi)始討論。
向量B[k]和矩陣中的元素aij之間的關(guān)系:由i和j推導(dǎo)k:特殊矩陣——對(duì)稱矩陣下標(biāo)變換公式三角矩陣:
下三角矩陣是指矩陣的上三角(不包括對(duì)角線)中的元素均為零或常數(shù)的n階方陣。特殊矩陣——三角矩陣下三角矩陣存儲(chǔ)公式和對(duì)稱矩陣存儲(chǔ)主對(duì)角線以下元素的公式基本相同,只需額外再增加一個(gè)存儲(chǔ)常數(shù)或零的存儲(chǔ)空間即可,即壓縮存儲(chǔ)空間為1+n(n+1)/2
。特殊矩陣——對(duì)角矩陣對(duì)角矩陣:
所有非零元素都集中在以主對(duì)角線為中心的帶狀區(qū)域中。即除了主對(duì)角線上和直接在對(duì)角線上、下方若干條對(duì)角線上的元素之外,所有其它的元素均為零。b條對(duì)角線n行n列(a)a11
a12
a21
a22
a23
an-1,n
an,n
an,n-1
OO(b)a11
a12
a21
a22
a23
an-1,n
an,n
an,n-1
OO
三對(duì)角矩陣:共3n-2個(gè)非零元素,存入B[3n-2]中,元素在一維數(shù)組B中的下標(biāo)k和元素在矩陣中的下標(biāo)i和j的對(duì)應(yīng)關(guān)系為:
k=3(i-1)-1(主對(duì)角線左下角,即i=j+1)
k=3(i-1)(主對(duì)角線上,即i=j)
k=3(i-1)+1(主對(duì)角線上,即i=j-1)由以上三式,得
k=2(i-1)+(j-1)(1≤
i,j≤
n;0≤
k≤
3n-1)特殊矩陣——對(duì)角矩陣稀疏矩陣的定義稀疏矩陣的定義非零元素較少,分布無(wú)規(guī)律。稀疏因子假設(shè)m行n列的矩陣含t個(gè)非零元素,則稀疏因子為δ=t/(m*n)<=0.05。稀疏矩陣的存儲(chǔ)結(jié)構(gòu)二維數(shù)組?壓縮存儲(chǔ)?以常規(guī)方法,即以二維數(shù)組表示高階的稀疏矩陣時(shí)產(chǎn)生的問(wèn)題:(1)零值元素占了很大空間;(2)計(jì)算中進(jìn)行了很多和零值的運(yùn)算,遇除法,還需判別除數(shù)是否為零。(1)盡可能少存或不存零值元素;解決問(wèn)題的原則:(2)盡可能減少?zèng)]有實(shí)際意義的運(yùn)算;(3)操作方便。即:能盡可能快地找到與下標(biāo)值(i,j)對(duì)應(yīng)的元素,能盡可能快地找到同一行或同一列的非零值元。壓縮存儲(chǔ)時(shí),對(duì)零元素不分配存儲(chǔ)空間,只存儲(chǔ)稀疏矩陣中的非零元。稀疏矩陣的壓縮存儲(chǔ)順序存儲(chǔ)結(jié)構(gòu)——三元組表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)——十字鏈表ije12616-2
34-8
42346751-12539三元組順序表úúúúúú?ùêêêêêê?é---=0009012700030008000000000200060A
#defineMAXSIZE12500
typedefstruct{
inti,j;
//該非零元的行下標(biāo)和列下標(biāo)
ElemTypee;
//該非零元的值
}
Triple;
//三元組類型typedefstruct{
Triple
data[MAXSIZE+1];
intmu,nu,tu;
}TSMatrix;//三元組順序表表示稀疏矩陣三元組順序表例:下面的三元組順序表表示一個(gè)稀疏矩陣,試還原出它的稀疏矩陣。12221123134445366116ije0123450
0000
00000000
0000
0000
0000
20012
000
3
0000
0040
06016
000646datatumunu十字鏈表中非零元結(jié)點(diǎn)的結(jié)構(gòu):rowcoledownright元素結(jié)點(diǎn)十字鏈表同一列下一個(gè)非零元同一行下一個(gè)非零元十字鏈表的結(jié)構(gòu)類型typedefstructOLNode{int
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生字教學(xué)課件教學(xué)課件
- 機(jī)房安全隱患排查
- 精益管理培訓(xùn)心得匯報(bào)
- 背簍投球教案及反思
- 氧化碳的性質(zhì)說(shuō)課稿
- 化學(xué)的說(shuō)課稿
- 木工包工協(xié)議范本
- 工程監(jiān)理資料管理
- 辦公用品展銷會(huì)管理辦法
- 情侶旅行民宿管理細(xì)則
- 廣州本田Honda品質(zhì)點(diǎn)檢評(píng)價(jià)表
- 道路交通安全警示教育通用ppt
- 設(shè)備維修崗位危險(xiǎn)源辨識(shí)風(fēng)險(xiǎn)評(píng)價(jià)及控制表
- 2017修改學(xué)生頂崗實(shí)習(xí)管理辦法
- Java語(yǔ)言程序設(shè)計(jì)PPT全套完整教學(xué)課件
- 小學(xué)英語(yǔ)-Mum bug's bag教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 天然氣輸送管道首站門站簡(jiǎn)介演示文稿
- 復(fù)盤養(yǎng)豬分析:探尋背后的成功秘訣
- 藝術(shù)設(shè)計(jì)本科專業(yè)人才培養(yǎng)方案
- qdslrdashboard應(yīng)用軟件使用說(shuō)明
- ???023綜合安防工程師認(rèn)證試題答案HCA
評(píng)論
0/150
提交評(píng)論