數據結構 第5章 數組和廣義表_第1頁
數據結構 第5章 數組和廣義表_第2頁
數據結構 第5章 數組和廣義表_第3頁
數據結構 第5章 數組和廣義表_第4頁
數據結構 第5章 數組和廣義表_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、22.3.322.3.322.3.322.3.3從邏輯結構上,數組可以看作從邏輯結構上,數組可以看作是一般線性表的擴充。一維數組是一般線性表的擴充。一維數組即為線性定義表,而二維數組可即為線性定義表,而二維數組可以為以為“其數據元素為一維數組其數據元素為一維數組(線性表)(線性表)”的線性表。依此類的線性表。依此類推,即可得到多維數組的定義。推,即可得到多維數組的定義。22.3.322.3.3以二維數組為例:以二維數組為例:22.3.322.3.322.3.322.3.322.3.322.3.3ADT Array 數據對象數據對象: D = aD = aj1 j2j1 j2jnjn| | n(

2、0)n(0)稱為數組的維數,稱為數組的維數, j ji i是數組元素第是數組元素第i i維的下標,維的下標, j ji i= = 0,1,0,1,b,bi i-1 , i=1,2,-1 , i=1,2,n, bi,n, bi是數組第是數組第i i維的長度,維的長度,a aj1 j2j1 j2jnjn ElemSetElemSet 數據關系數據關系: R = R1, R2, R = R1, R2, , , RnRn Ri Ri=a=| 0 0j jk k b bk k-1 -1 ,1 1 k k n n且且kiki, 0 0 j ji i b bi i-2-2, a aj1j1jijijn,jn

3、,a aj1j1ji+ji+1 1jnjnDD ,i=,i=2,2,n,n22.3.322.3.3基本操作:InitAarray( &A,n,bound1,boundn )操作結果:若維數操作結果:若維數n和各維數長度合法,和各維數長度合法,則構造相應的數組則構造相應的數組A,并返回,并返回OK。DestroyArray(&A)操作結果:銷毀數組操作結果:銷毀數組A。22.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.3a00 a01 a0,n-1a10 a11 a1,n-1 am-1,0 am-1,0 am-1,n-1A=二維數組的表

4、示形式二維數組的表示形式行優先順序存儲行優先順序存儲a00a01 a0n-1第第 1行行a10 a11 a1,n-1第第 2行行am-1,0 am-1,1 am-1,n-1 第第 m行行a00 a10 am-1,0第第 1列列a01 a11 am-1,1第第 2列列a0,n-1 a1,n-1 am-1,n-1第第 n列列列優先順序存儲列優先順序存儲22.3.322.3.3基地址或基址基地址或基址22.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.31 2 3

5、 1 5 -5 2 2 -13 1 6 3 4 8 4 1 -44 5 7 2 1 3 5 1 -5 2 2 -1 1 3 6 4 3 8 1 4 -4 5 4 7 22.3.322.3.31 2 3 1 5 -5 2 2 -13 1 6 3 4 8 4 1 -44 5 7 2 1 3 1 3 6 5 1 -51 4 -4 2 2 -1 2 1 3 1 3 62 2 -1 4 3 8 4 3 8 1 4 -4 5 1 -55 4 7 5 4 7 Col 1 2 3 4 5Num 0+1+1 0+1+1 0 0+1 0+1+1 cPot 1 1+2=3 3+2=5 5+0=5 5+1=6pq47

6、222.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.31 2 3 1 5 -5 2 2 -13 1 6 3 4 8 4 1 -44 5 7 2 1 3 1 3 6 5 1 -51 4 -4 2 2 -1 2 1 3 1 3 62 2 -1 4 3 8 4 3 8 1 4 -4 5 1 -55 4 7 5 4 7 Col 1 2 3 4 5Num 0+1+1 0+1+1 0 0+1 0+1+1 cPot 1 1+2=3 3+2=5 5+0=5 5+1=6pq22.3.322.3.31 2 21 5 3 2 2 -12 3 53

7、1 43 4 73 5 6 1 2 3 2 1 22 2 4 3 1 1 5 2 -2 4 3 -3 22.3.322.3.322.3.322.3.322.3.322.3.31 2 21 5 3 2 2 -12 3 53 1 43 4 73 5 6 1 2 3 2 1 22 2 4 3 1 1 5 2 -2 4 3 -3 0+4 =40+8 +(-6) =20 +(-2) +5 =30 -31 1 4 1 2 2 2 1 3 2 2 -44 1 -3 pq0+(-4) =-4 0+12+(-12) =0 ctemp22.3.322.3.322.3.322.3.322.3.322.3.322.3

8、.322.3.322.3.322.3.322.3.322.3.3 對于稀疏矩陣,當非對于稀疏矩陣,當非0元素的個數和位元素的個數和位置在操作過程中變化較大時,采用鏈式存置在操作過程中變化較大時,采用鏈式存儲結構表示比三元組的線性表更方便。儲結構表示比三元組的線性表更方便。 矩陣中非矩陣中非0元素的結點所含的域有:元素的結點所含的域有:行行、列列、值值、行指針行指針(指向同一行的下一個非指向同一行的下一個非0元元)、列指針列指針(指向同一列的下一個非指向同一列的下一個非0元元)。其次,十字交叉鏈表還有一個頭結點其次,十字交叉鏈表還有一個頭結點。22.3.322.3.30 12 0 0 00 12

9、 0 0 00 0 0 0 -40 0 0 0 -40 5 0 0 00 5 0 0 00 0 3 0 00 0 3 0 0稀疏稀疏矩陣矩陣A A) 稀疏稀疏矩陣的十字交叉鏈表矩陣的十字交叉鏈表A.cheadA.rchead 1 2 12 3 2 5 2 5 -4 4 3 3 22.3.322.3.322.3.322.3.3abecdEFD( )( )22.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.3基本操作基本操作22.3.322.3.3標志標志tag=0 tag=0 原子的值原子的值datadata 標志標志tagtag=1 =1 表頭指針表頭指針hphp 表尾指針表尾指針tptp 表結點:表結點:原子結點:原子結點:22.3.322.3.31 1表頭表頭表尾表尾0 data0 data 22.3.322.3.3a(x,y),(x)(x,y)( (x) )x(y)y( ) (x)( ) (x)( )x( )22.3.322.3.31 1L1 1(x,y)(x,y),(x)( (x)0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論