深圳大學(xué)-數(shù)據(jù)結(jié)構(gòu)-2017數(shù)組和廣義表演示文檔
《深圳大學(xué)-數(shù)據(jù)結(jié)構(gòu)-2017數(shù)組和廣義表演示文檔》由會員分享,可在線閱讀,更多相關(guān)《深圳大學(xué)-數(shù)據(jù)結(jié)構(gòu)-2017數(shù)組和廣義表演示文檔(39頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
第5章 數(shù)組和廣義表,5.1.1 數(shù)組和數(shù)組元素數(shù)組: ? n個(gè)相同類型數(shù)據(jù)元素a1,a2,…,an 構(gòu)成的有限序列 ? 該有限序列存儲在一塊地址連續(xù)的內(nèi)存單元中 ? 數(shù)組的定義類似于采用順序存儲結(jié)構(gòu)的線性表,5.1 數(shù) 組,數(shù)組的特性: ? 數(shù)組中的數(shù)據(jù)元素?cái)?shù)固定 ? 數(shù)組中的數(shù)據(jù)元素具有相同數(shù)據(jù)類型 ? 數(shù)組中的每個(gè)數(shù)據(jù)元素都有一組惟一的下標(biāo)值。 ? 數(shù)組是一種隨機(jī)存儲結(jié)構(gòu)??呻S機(jī)存取數(shù)組中的任意數(shù)據(jù)元素,5.1.2 數(shù)組的定義 ADT array { 數(shù)據(jù)對象D:具有相同類型的數(shù)據(jù)元素構(gòu)成的有序集合; 數(shù)據(jù)關(guān)系R:對于n維數(shù)組,其每一個(gè)元素均位于n個(gè)向量中,每個(gè)元素最多具有n個(gè)前驅(qū)結(jié)點(diǎn)和n個(gè)后繼結(jié)點(diǎn); 基本運(yùn)算: } ADT array,5.1.3 數(shù)組的順序存儲及實(shí)現(xiàn) 數(shù)組是線性表的一種存儲方式 多維數(shù)組數(shù)據(jù)元素的順序存儲有兩種方式: ? 按行優(yōu)先存儲 ? 按列優(yōu)先存儲,一維數(shù)組的存儲: 若a0的存儲地址LOC(a0)確定,每個(gè)數(shù)據(jù)元素占用k個(gè)存儲單元,則: LOC(ai)=LOC(a0)+i*k (0≤i≤n) 一維數(shù)組中任一數(shù)據(jù)元素的存儲地址可直接計(jì)算得到(直接存取). 一維數(shù)組是一種隨機(jī)存儲結(jié)構(gòu)。,二維數(shù)組A[m][n]的存儲: a00 a01 ……………a0( n-1) a10 a11 ……………a1( n-1) A = ┋ ┋ ┋ a(m-1)0 a(m-1)1……… a(m-1) (n-1)按行優(yōu)先存儲順序:a00, a01,… a0(n-1) , a10, a11,… a1(n-1) , … a(m-1)0,a(m-1)1,…a(m-1) (n-1) 按列優(yōu)先存儲順序:a00,a10,… a(m-1)0 , a01, a11, … a(m-1)1, … a0(n-1) ,..a1(n-1),…a(m-1) (n-1),,,二維數(shù)組及其順序存儲圖例形式,(b) 行優(yōu)先順序存儲,(c) 列優(yōu)先順序存儲,設(shè)有二維數(shù)組A=(aij)m?n,若每個(gè)元素占用的存儲單元數(shù)為L(個(gè)),LOC[a00]表示元素a00的首地址,即數(shù)組的首地址。 1 以“行優(yōu)先順序”存儲 ⑴ 第0行中的每個(gè)元素對應(yīng)的(首)地址是: LOC[a0j]=LOC[a00]+j?L j=0,1,2, …,n (2) 第1行中的每個(gè)元素對應(yīng)的(首)地址是: LOC[a1j]=LOC[a00]+n?L+j?L j=0,1,2, …,n … … … ⑶ 第m行中的每個(gè)元素對應(yīng)的(首)地址是: LOC[amj]=LOC[a00]+m?n?L+j?L j=0,1,2, …,n,aij存儲位置按行優(yōu)先:address(aij )= address ( a00 ) + ( i×n+j )×L 按列優(yōu)先:address(aij ) = address ( a00 ) + (j×m +i )×L,二維數(shù)組可以看作是每個(gè)數(shù)據(jù)元素都是相同類型的一維數(shù)組的一維數(shù)組。 以此類推,任何多維數(shù)組都可以看作一個(gè)線性表,這時(shí)線性表中的每個(gè)數(shù)據(jù)元素也是一個(gè)線性表。 多維數(shù)組是線性表的推廣。,例5.1 有二維數(shù)組float a[5][4],計(jì)算a[3][2]的內(nèi)存地址.(a起始地址為2000,數(shù)組元素長度4字節(jié)) LOC(a3,2)=LOC(a0,0)+(i*n+j)*k =2000+(3*4+2)*4=2056,壓縮存儲:多個(gè)相同值的結(jié)點(diǎn)只分配一個(gè)存儲空間,值為零的結(jié)點(diǎn)不分配空間。,5.2 矩陣的壓縮存儲,5.2.1 特殊矩陣 主要討論對稱矩陣和三角矩陣的壓縮存儲,對稱矩陣的壓縮存儲 若該矩陣為方陣。n×n階的方陣A滿足: aij=aji (0≤i≤n-1 , 0≤j≤n-1)則A為對稱矩陣。 對稱矩陣中,幾乎有一半元素的值相等。如存儲所有元素,浪費(fèi)空間,且n值越大,浪費(fèi)越嚴(yán)重。,對稱矩陣壓縮存儲: 只存儲對角線以上(或?qū)蔷€以下)部分,未存儲的部分利用元素之間的對稱性訪問。 存儲對稱矩陣A(對角線以下部分,下標(biāo)滿足i≥j的數(shù)組元素aij): a00 a10 a11 A = a20 a21 a22 ┋ ┋ ┋ a(n-1)0 ………….a(n-1) (n-1),,,按行優(yōu)先存儲,A壓縮存儲后元素aij的地址:? address(a00)+(i*(i+1)/2+j)×L 當(dāng)i≥jaddress(aij)= address(a00)+(j*(j+1)/2+i)×L 當(dāng)i< j,,三角矩陣的壓縮存儲 1、下三角矩陣 a00 0 0 ……… 0 a10 a11 0 ………. 0 A = a20 a21 a22 ………. 0 ┋ ┋ ┋ ┋ a(n-1)0 ……………… a(n-1) (n-1) 按行優(yōu)先, aij(i≥j)壓縮存儲后的地址為: address(aij)= address(a00)+ (i*(i+1)/2+j)×L 當(dāng)i≥j注: 與對稱矩陣不同,當(dāng)i- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
10 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 深圳大學(xué) 數(shù)據(jù)結(jié)構(gòu) 2017 數(shù)組 廣義 表演 文檔
鏈接地址:http://kudomayuko.com/p-359906.html