版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章數(shù)組
4.1數(shù)組定義及基本操作
4.2數(shù)組的存儲(chǔ)結(jié)構(gòu)
4.3特殊矩陣的壓縮存儲(chǔ)
4.4稀疏矩陣的壓縮存儲(chǔ)
4.5數(shù)組的運(yùn)算
2/1/20231第4章數(shù)組
數(shù)組是我們最常用的一種數(shù)據(jù)結(jié)構(gòu),各種計(jì)算機(jī)語(yǔ)言均有此類(lèi)型。例如:順序表、順序棧、循環(huán)隊(duì)列等。1.?dāng)?shù)組的定義:數(shù)組:是n(n>1)個(gè)相同數(shù)據(jù)類(lèi)型的數(shù)據(jù)元素a0,a1…an-1,構(gòu)成的占用一塊連續(xù)的內(nèi)存單元的有限序列。數(shù)組特點(diǎn):
1.有限個(gè)元素的集合;
2.所有元素具有相同的特性;
3.元素名由數(shù)組名和下標(biāo)組成;
4.下標(biāo)值與元素對(duì)應(yīng)(代表元素的位置)。4.1數(shù)組的定義及操作2/1/20232第4章數(shù)組
數(shù)組與線性表:相同之處:由若干個(gè)相同數(shù)據(jù)類(lèi)型的數(shù)據(jù)元素組成.不同之處:1.存儲(chǔ)單元連續(xù)與否
2.數(shù)據(jù)元素在邏輯意義上可分與否
3.操作不同。2/1/20233第4章數(shù)組2.數(shù)組的邏輯結(jié)構(gòu)
一維數(shù)組(a0,a1,a2,a3,…an-1)滿足線性關(guān)系;二維或二維以上數(shù)組:(以二維為例)Amxn=a
a
…..
aa00
a01…….a0n-110111n-1……...a
a
am-10m-11m-1n-1看元素a11有兩個(gè)直接前趨a10和a01兩個(gè)直接后繼a21和a12三維數(shù)組:每個(gè)元素有三個(gè)直接前趨和三個(gè)直接后繼.可見(jiàn):數(shù)組(除一維數(shù)組外)是一種復(fù)雜的非線性數(shù)據(jù)結(jié)構(gòu).2/1/20234第4章數(shù)組但是:1)可將Amxn看成由m個(gè)行向量組成的向量,即
Amn={(a00,a01,……a0n-1),(a10,a11,……a1n-1),……(am-10,
am-11,……am-1n-1)}2)將Amxn看成由n個(gè)列向量組成的向量,即
Amn=((a00,a10,……am-10),(a01,a11,……am-11)……
(a0n-1,a1n-1,……am-1n-1))
列向量為線性.元素1元素2元素m看(ai0,ai1,…..ain-1),除ai0,ain-1
外只有一個(gè)直接前趨和一個(gè)直接后繼.元素1元素2元素n2/1/20235第4章數(shù)組
據(jù)此數(shù)組可看成是線性表的擴(kuò)展:即線性表中的數(shù)據(jù)元素本身也是一個(gè)數(shù)據(jù)結(jié)構(gòu).
數(shù)組可表示成兩類(lèi)線性表:1.以行向量做線性表的一個(gè)元素;2.以列向量做線性表的一個(gè)元素.2/1/20236第4章數(shù)組3.?dāng)?shù)組抽象數(shù)據(jù)類(lèi)型:數(shù)據(jù)集合:數(shù)組的數(shù)據(jù)集合可表示為a0,a1…an-1,每個(gè)數(shù)據(jù)元素的類(lèi)型為抽象數(shù)據(jù)類(lèi)型:DataType.(限定順序存儲(chǔ))數(shù)據(jù)關(guān)系:線性關(guān)系.操作集合:
各種高級(jí)程序設(shè)計(jì)語(yǔ)言的操作各不相同,必備的操作有:(1)求數(shù)組元素個(gè)數(shù)(2)隨機(jī)?。?)隨機(jī)存(4)矩陣運(yùn)算2/1/20237第4章數(shù)組
一般數(shù)組:(以二維數(shù)組為例)多采用順序存儲(chǔ):(1).按行優(yōu)先順序存儲(chǔ)
假設(shè):Am×n=a00a01a02…a0n-1a10…a00a01a02a03…a0n-1
a10a11a12a13…a1n-1…am-10am-11am-12am-13…am-1n-1即a00,a01,a02……a0n-1,a10,a11,…...a1n-1……aij的存儲(chǔ)地址:am-1,04.2數(shù)組的存儲(chǔ)結(jié)構(gòu):2/1/20238第4章數(shù)組
L:為每個(gè)元素所占存儲(chǔ)單元.Pascal和C語(yǔ)言中數(shù)組存儲(chǔ)為此方式.Loc(aij)=Loc(a00)+(i*n+j)*L(2).列優(yōu)先順序存儲(chǔ),即
a00,a10,a20……am-10,a01,a11,…...am-11……
aij存儲(chǔ)地址:
Loc(aij)=Loc(a00)+(j*m+i)*LFortran語(yǔ)言采用此方法.a00a10a20…am-10a01…可見(jiàn):數(shù)組是一種隨機(jī)存儲(chǔ)結(jié)構(gòu).存取任意元素的時(shí)間相等2/1/20239第4章數(shù)組推廣:假設(shè):A[c1--d1][c2--d2]例:二維數(shù)組floata[4][3].計(jì)算(1)數(shù)組元素?cái)?shù)目?(2)若數(shù)組Loc(a00)=1000,且L=4,數(shù)組元素a[3][2]的地址?(按行優(yōu)先存儲(chǔ))4*3=12Loc(a32)=Loc(a00)+(i*n+j)*L=1000+(3*3+2)*4=1044Loc(aij)=Loc(ac1c2)+[(i-c1)*(d2-c2+1)+(j-c2)]*L按行優(yōu)先順序存儲(chǔ):Loc(aij)=Loc(ac1c2)+[(j-c2)*(d1-c1+1)+(i-c1)]*L按列優(yōu)先順序存儲(chǔ):2/1/202310第4章數(shù)組特殊矩陣:指有一定量的零元素(或相同元素),并且其分布(非零元素的位置)有一定的規(guī)律。采用壓縮順序存儲(chǔ)方式:只存非零元素,節(jié)省空間.
1.下三角矩陣:
存放形式:{a00,a10,a11,a20,a21,…an-10,an-11,…an-1n-1}4.3特殊矩陣的壓縮存儲(chǔ)a0000……..0a10a110…….0……………….0an-10an-11…..an-1n-1Ann=可以是0和常數(shù)C第1行:1個(gè)第2行:2個(gè)第3行:3個(gè)……第n行:n個(gè)1+2+3+4+5+…+n=n(n+1)/22/1/202311第4章數(shù)組非零元素aij存儲(chǔ)地址:Loc(aij)=Loc(a00)+[i*(i+1)/2+j]*L(0≤j≤i≤n-1)K0123…n(n-1)/2…n(n+1)/2-1sb[k]a00a10a11a20…an-11…an-1n-12/1/202312第4章數(shù)組假設(shè):以一維數(shù)組sb[n(n+1)/2+1]作為n階下三角矩陣A的存儲(chǔ)結(jié)構(gòu),A中任意元素aij與sb[k]對(duì)應(yīng)關(guān)系如下:
i(i+1)/2+j當(dāng)i≥j時(shí)(非零元素)k=n(n+1)/2當(dāng)i<j時(shí)(零或常數(shù))其中:sb[k]:sb[0]~sb[n(n+1)/2-1]sb[n(n+1)/2]存放常數(shù)或零2/1/202313第4章數(shù)組2.對(duì)稱(chēng)矩陣對(duì)稱(chēng)矩陣:n階方陣A中的元素滿足:
aij
=aji
0≤i,j≤n-1存儲(chǔ):可只存儲(chǔ)上三角矩陣或下三角矩陣將n*n個(gè)元素壓縮存儲(chǔ)到n(n+1)/2個(gè)元素空間中(sa數(shù)組)。以按行優(yōu)先存儲(chǔ)為例。A矩陣與sa[k]關(guān)系:上三角矩陣的存儲(chǔ)類(lèi)似下三角矩陣,上三角矩陣自推i(i+1)/2+ji≥jj(j+1)/2+ii<jk=2/1/202314第4章數(shù)組K0123…n(n-1)/2…n(n+1)/2-1sa[k]a00a10a11a20…an-11…an-1n-1隱含a01a02…a1n-13.對(duì)角矩陣:形狀:Ann=非零元素帶2/1/202315第4章數(shù)組例:三對(duì)角陣
An×n=其中非零元素按行優(yōu)先順序存放:{a00,a01,a10,a11,a12,a21,a22,a23,…,an-1,n-2,an-1,n-1}
非零元素aij的地址關(guān)系式:Loc(aij)=Loc(a00)+2*i+j(i=0,j=0,1或i=n-1,j=n-2,n-1或0<i<n-1,j=i-1,i,i+1)推廣:n階對(duì)角陣有(2h-1)條非零元素帶。h2/1/202316第4章數(shù)組以上數(shù)組存儲(chǔ)方式與順序存儲(chǔ)線性表類(lèi)似數(shù)組元素的存儲(chǔ)位置是其下標(biāo)的線性函數(shù)??傊禾厥饩仃嚨膲嚎s存儲(chǔ)方法:找出特殊矩陣的非零元素的分布規(guī)律,將其存儲(chǔ)到一個(gè)存儲(chǔ)空間,只需在算法中按公式計(jì)算即可實(shí)現(xiàn)矩陣元素的隨機(jī)存取。2/1/202317第4章數(shù)組稀疏因子:設(shè)在m*n的矩陣中,有t個(gè)非零元素,令稱(chēng)為矩陣的稀疏因子。通常認(rèn)為<=0.05時(shí)為稀疏矩陣。我們?cè)诖鎯?chǔ)的時(shí)候,除了存儲(chǔ)非零元的值之外,還得存儲(chǔ)它所在的行號(hào)和列號(hào)。由此構(gòu)成一個(gè)三元組(i,j,aij),該三元組唯一確定了該矩陣元素。
4.4稀疏矩陣:2/1/202318第4章數(shù)組含有大量零元素的矩陣,且無(wú)規(guī)律。僅存非零元素,可省空間,避免大量無(wú)意義運(yùn)算,提高運(yùn)算效率.例:A=000700-100-1-20000000000020
1.順序存儲(chǔ):按行優(yōu)先順序排列.(1).三元組順序表:每個(gè)結(jié)點(diǎn)由三個(gè)域組成
a.非零元素行下標(biāo);b.非零元素列下標(biāo);c.非零元素值.2/1/202319第4章數(shù)組
A的三元組順序表表示:(0,0,3)(0,4,7)(1,2,-1)(2,0,-1)(2,1,-2)(4,3,2)若有N個(gè)非零元素則需要3N個(gè)存儲(chǔ)單元
00304712-120-121-2432行列值6552/1/202320第4章數(shù)組2.鏈接存儲(chǔ)結(jié)構(gòu):(1)三元組(單)鏈表.
三元組線性表采用鏈接存儲(chǔ)結(jié)構(gòu)。(0,0,3)(0,4,7)(1,2,-1)(2,0,-1)(2,1,-2)(4,3,2)A=3000700-100-1-20000000000020
缺點(diǎn):算法事件復(fù)雜度高300740-121-102-2122∧34h552/1/202321第4章數(shù)組01234/\
(2)行指針數(shù)組結(jié)構(gòu)的三元組鏈表.
設(shè)置一個(gè)行指針數(shù)組,數(shù)組中每個(gè)元素為指針類(lèi)型,它指向本行矩陣的第一個(gè)非零元素,若該行無(wú)非零元素,則指針為空.
以A為例:行指針數(shù)組
0347/\2-1/\32/\1-2/\0-1A=3000700-100-1-20000000000020
2/1/202322第4章數(shù)組(3).三元組十字鏈表:上面介紹的行指針數(shù)組結(jié)構(gòu)的三元組鏈表形式容易實(shí)現(xiàn)按行找某列元素,不容易實(shí)現(xiàn)按列找某行元素.改進(jìn):按照行指針數(shù)組結(jié)構(gòu)的三元組鏈表形式構(gòu)造出相同結(jié)構(gòu)的列指針數(shù)組.例:A=000700-100-1-20000000000020
003/\-1/\/\12341234/\-1/\7/\/\-2/\/\2/\2/1/202323第4章數(shù)組為了方便算法中對(duì)矩陣的行方向和列方向的搜索。
采用動(dòng)態(tài)存儲(chǔ)結(jié)構(gòu):每個(gè)非零元素用一個(gè)結(jié)點(diǎn)由五個(gè)數(shù)據(jù)域組成:三個(gè)數(shù)值,兩個(gè)指針.三個(gè)數(shù)值:i,j,value.表示非零元素的行號(hào)、列號(hào)和元素值。兩個(gè)指針:Down:向下指針
Right:向右指針行鏈表的頭結(jié)點(diǎn)與列鏈表的頭結(jié)點(diǎn)共用一個(gè)結(jié)點(diǎn).ijValueDownRight十字鏈表設(shè)置:行頭結(jié)點(diǎn)、列頭結(jié)點(diǎn)和鏈表頭結(jié)點(diǎn).linkDownRight行頭結(jié)點(diǎn)列頭結(jié)點(diǎn)(4).十字鏈表:2/1/202324第4章數(shù)組鏈表頭結(jié)點(diǎn)mnlink300700-10-1-2000000例:
A5×5=2/1/202325第4章數(shù)組4400303721-212-120-1headh1h1h2h2h3h3h4h4300700-10-1-20000002/1/202326第4章數(shù)組轉(zhuǎn)置運(yùn)算:設(shè)稀疏矩陣A以三元組表順序存儲(chǔ)結(jié)構(gòu)存放。三元組順序表結(jié)構(gòu)定義如下:#defineMAX100typedef
struct{inti;/*行*/
intj;/*列*/
DataTyped;/*元素值*/}tupletype;/*三元組*/typedef
struct{int
md;/*總行數(shù)*/
int
nd;/*總列數(shù)*/
inttd;/*總非零元素?cái)?shù)*/
tupletypedata[MAX];}tabletype;/*三元組表*/4.5數(shù)組運(yùn)算:2/1/202327第4章數(shù)組mdndtdijdijdijdijdsa.md#defineMAX10typedef
struct{inti;/*行*/
intj;/*列*/
DataTyped;/*元素值*/}tupletype;/*三元組*/typedef
struct{int
md;/*總行數(shù)*/
int
nd;/*總列數(shù)*/
inttd;/*總非零元素?cái)?shù)*/
tupletypedata[MAX];}tabletype;/*三元組表*/tabletype
sa;sa.ndsa.tdsa.data[].isa.data[].j2/1/202328第4章數(shù)組例:將稀疏矩陣A進(jìn)行轉(zhuǎn)置A=0011017000250000000000000000000037000000000025676021104171125301943375650sa:p=0766031911252011343740176550sb:q=0轉(zhuǎn)置v=02/1/202329第4章數(shù)組轉(zhuǎn)置算法:Voidtrantup(tabletype
sa,tabletype*sb){intp,q,v;
sb->md=sa.nd;
sb->nd=sa.md;
sb->td=sa.td;
if(sb->td!=0){q=0;for(v=0;v<sa.nd;v++){for(p=0;p<sa.td;p++){if(sa.data[p].j==v){sb->data[q].i=sa.data[p].j;
sb->data[q].j=sa.data[p].i;
sb->data[q].d=sa.data[p].d;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鶴壁道路運(yùn)輸貨運(yùn)從業(yè)資格證模擬考試題庫(kù)
- 2025年廣西貨運(yùn)從業(yè)資格證模擬考試試題題庫(kù)
- 《食品安全危機(jī)管理》課件
- 2025簡(jiǎn)單的技術(shù)咨詢合同格式
- 2024年智慧城市建設(shè)投資入股協(xié)議書(shū)3篇
- 墨爾本大學(xué)java課程課件chap
- 2025消防工程施工合同
- 2024年度生物制藥投資入股合同范本大全3篇
- 2025軟件委托開(kāi)發(fā)合同書(shū)
- 2025印刷裝訂的合同范文
- T/CEC 143-2017 超高性能混凝土電桿完整
- 京瓷哲學(xué)78條文字
- 2024年國(guó)家工作人員學(xué)法考法知識(shí)考試題庫(kù)500題(含答案)
- 對(duì)武漢市臨床護(hù)生從事老年社區(qū)護(hù)理工作意愿及影響因素的調(diào)查分析
- MOOC 社會(huì)心理學(xué)-浙江大學(xué) 中國(guó)大學(xué)慕課答案
- MOOC 國(guó)際交流學(xué)術(shù)英文寫(xiě)作-湖南大學(xué) 中國(guó)大學(xué)慕課答案
- JJG 692-2010無(wú)創(chuàng)自動(dòng)測(cè)量血壓計(jì)
- MOOC 電磁場(chǎng)與電磁波理論-南京郵電大學(xué) 中國(guó)大學(xué)慕課答案
- 2024年度-養(yǎng)豬技術(shù)(教案)
- (2024年)醫(yī)療法律法規(guī)培訓(xùn)
- (2024年)燕歌行高適公開(kāi)課教案
評(píng)論
0/150
提交評(píng)論