數(shù)據(jù)結(jié)構(gòu)與算法 課件.ppt

數(shù)據(jù)結(jié)構(gòu)與算法 課件.ppt

ID:57118716

大小:162.50 KB

頁(yè)數(shù):22頁(yè)

時(shí)間:2020-07-31

數(shù)據(jù)結(jié)構(gòu)與算法 課件.ppt_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)與算法 課件.ppt_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)與算法 課件.ppt_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)與算法 課件.ppt_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)與算法 課件.ppt_第5頁(yè)
資源描述:

《數(shù)據(jù)結(jié)構(gòu)與算法 課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、第五章.數(shù)組和廣義表(Chapter5.ArraysandGeneralizedLists)§5.1數(shù)組的定義數(shù)組和廣義表都是數(shù)據(jù)元素為結(jié)構(gòu)類型的一種特殊的線性表。數(shù)組的每一個(gè)元素的結(jié)構(gòu)都是相同的。數(shù)組通常分為二維數(shù)組、三維數(shù)組…和n維數(shù)組。2-Array=(D,R)D={aij

2、i=0,1,…,d1-1,j=0,1,…,d2-1,aij∈D0}R={ROW,COL}ROW={

3、0≤i≤d1-1,0≤j≤d2-2,aij,ai,j+1∈D}COL={

4、0≤i≤d1-

5、2,0≤j≤d2-1,aij,ai+1,j∈D}D0為某數(shù)據(jù)對(duì)象,d1,d2為整數(shù)。下面是二維數(shù)組的定義:下面是多維數(shù)組的定義:n-Array=(D,R)D={aj1j2…jn

6、ji=0,1,…,di-1,i=1,2,…,n,(n>0),aj1j2…jn∈D0}R={R1,R2,…,Rn}Ri={

7、0≤jk≤dk-1,1≤k≤n,且k≠i,0≤ji≤di-2,aj1...ji…jn,aj1...ji+1…jn∈D,D0為某數(shù)據(jù)對(duì)象,di為整數(shù)。i=2,3,…,

8、n}求每個(gè)給定下標(biāo)的數(shù)據(jù)元素的存儲(chǔ)地址:§5.2數(shù)組的順序存儲(chǔ)數(shù)組的順序存儲(chǔ)有兩種存儲(chǔ)方式:即按行優(yōu)先(rowmajororder)存儲(chǔ)或按列優(yōu)先(columnmajororder)存儲(chǔ)。Loc(j1,j2,…,jn)=Loc(0,0,…,0)+[d2*…*dn*j1+d3*…*dn*j2+...+dn*jn-1+jn]*l=Loc(0,0,…,0)+(∑ji∏dk+jn)*li=1k=i+1n-1n這就說(shuō)明了多維數(shù)組是一種隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)?!?.3矩陣壓縮存儲(chǔ)矩陣是很多科學(xué)與工程計(jì)算中常使用的數(shù)據(jù)結(jié)構(gòu)。在實(shí)際

9、應(yīng)用中,很多矩陣存在大量零元素或重復(fù)元素,為節(jié)省存儲(chǔ)空間,可對(duì)這類矩陣進(jìn)行壓縮存儲(chǔ)。=Loc(0,0,…,0)+∑ci*jii=1n其中ci=l,ci-1=di*ci,1<i≤n特殊矩陣:這類矩陣由于零元素或重復(fù)元素的分布很有規(guī)律,可以很容易地把矩陣壓縮存儲(chǔ)在一個(gè)一維數(shù)數(shù)組中。An×nBm,即B[k]=A[i][j],需求出下標(biāo)映射函數(shù)k=f(i,j)。上三角矩陣0對(duì)角矩陣000下三角矩陣ajiaij對(duì)稱矩陣稀疏矩陣:這類矩陣非零元素很少,但它們的分布沒有規(guī)律,因此在壓縮存儲(chǔ)時(shí)須同時(shí)存儲(chǔ)非零元素的下標(biāo)和值??捎萌?/p>

10、元組表(listof3-tuples)來(lái)存儲(chǔ)(行號(hào),列號(hào),值)。如下三角矩陣有映射k=i(i-1)/2+j(i≥j),Aij=Bk(i≥j),Aij=0(i

11、ct{tripledata[MAXNUM+1];intmu,nu,tu;}matrix;稀疏矩陣還可用帶行索引的二元組表、十字鏈表等表示。最常用的一種算法是求矩陣的轉(zhuǎn)置:因三元組表是按行優(yōu)先排序的,故需先確定轉(zhuǎn)置后矩陣各行的元素個(gè)數(shù),預(yù)留出位置再進(jìn)行轉(zhuǎn)置。ijv1212211253345522566ijv1212112252435523656A’作業(yè)9.設(shè)有上三角矩陣(aij)n×n,將其上三角元素逐行存于數(shù)組B(1:m)中,使得B[k]=aij,且k=f1(i)+f2(j)+c。試推導(dǎo)函數(shù)f1、f2和常數(shù)項(xiàng)c,

12、其中1≤i,j≤n。10.設(shè)計(jì)一個(gè)算法,將數(shù)組A(1:n)中的元素循環(huán)右移k位,要求只用一個(gè)元素的附加空間,元素移動(dòng)或交換次數(shù)為O(n)?!?.4廣義表的定義廣義表又稱列表,其每一個(gè)元素的結(jié)構(gòu)都可能是不同的。Lists=(D,R)D={di

13、i=1,2,…,n,n≥0,且di∈D0或di∈Lists}R={LR}LR={

14、di-1,di∈D,2≤i≤n}通常廣義表記著:LS=(d1,d2,d3,...,dn)其中D0為某數(shù)據(jù)對(duì)象,di可以是原子(atom),也可以是廣義表,稱為L(zhǎng)S的子表(sub

15、list)。其中第一個(gè)元素d1稱為表LS的表頭(head),由余下元素組成的表(d2,d3,...,dn)稱為L(zhǎng)S的表尾(tail)。廣義表中括號(hào)的重?cái)?shù)稱為廣義表的深度。函數(shù)Head與函數(shù)Tail分別求廣義表的表頭和表尾。函數(shù)Depth求廣義表的深度。如下列均為廣義表:1、A=()3、C=(a,(a,b,c))4、D=(A,B,C,d)5、E=(E,e)2、B=(a)1、

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。