數(shù)據(jù)結(jié)構(gòu)1-數(shù)組_第1頁
數(shù)據(jù)結(jié)構(gòu)1-數(shù)組_第2頁
數(shù)據(jù)結(jié)構(gòu)1-數(shù)組_第3頁
數(shù)據(jù)結(jié)構(gòu)1-數(shù)組_第4頁
數(shù)據(jù)結(jié)構(gòu)1-數(shù)組_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2007-02數(shù)據(jù)結(jié)構(gòu)中國福利會兒童計算機活動中心第一講 數(shù)組 人類創(chuàng)造了計算機,初始是為了幫助解決高速準確地進行大量的數(shù)值計算問題。但是,隨著計算機應用領域不斷擴大,文字處理、圖像處理、音樂編輯、視頻編輯等非數(shù)值計算問題占據(jù)了當今計算機應用的絕大多數(shù),簡單的數(shù)據(jù)類型已經(jīng)遠遠不能滿足需要,各數(shù)據(jù)元素之間的復雜聯(lián)系已經(jīng)不是普通數(shù)學方程所能表達的。因而,計算機科學家創(chuàng)設了在計算機上描述各種非數(shù)值計算問題的數(shù)據(jù)表示方法數(shù)據(jù)結(jié)構(gòu)。為用計算機編寫解決實際問題的程序提供了十分有效的手段。實際上一個好的程序無非是選擇一個合適的數(shù)據(jù)結(jié)構(gòu)和好的算法,而好的算法的選擇很大程度上取決于描述實際問題的數(shù)據(jù)結(jié)構(gòu)的選取。

2、所以,學好數(shù)據(jù)結(jié)構(gòu),將是進一步提高我們程序設計的關鍵之一。 所以通常我們在程序設計時,所遇到的首要問題就是:選擇什么樣的數(shù)據(jù)結(jié)構(gòu)才合適呢?這個問題十分關鍵。下面我們就各種數(shù)據(jù)結(jié)構(gòu)作一些引導。 數(shù)組是最常用的數(shù)據(jù)結(jié)構(gòu)之一,數(shù)組常用來實現(xiàn)數(shù)據(jù)為順序存儲形式的線性表。 數(shù)組是一組具有相同類型的變量,其中各個元素共用一個數(shù)組名,元素依次順序存儲,每個元素對應一個下標,數(shù)組元素按數(shù)組名和元素下標引用。 C語言中約定數(shù)組的第1個元素的下標為0其余依次類推,由n個元素組成的數(shù)組,其最后一個元素的下標為n-1。例如說明了 int mx5; 那么第一個元素為 mx0,其最后一個元素為 mx4。 二維數(shù)組 三維數(shù)

3、組行向量 下標 i 頁向量 下標 i列向量 下標 j 行向量 下標 j 列向量 下標 k 二維數(shù)組 二維數(shù)組其下標在兩個方向上變化,下標變量在數(shù)組中的位置也處于一個平面之中,而不是象一維數(shù)組只是一個向量。但是,實際的硬件存儲器卻是連續(xù)編址的,也就是說存儲器單元是按一維線性排列的。如何在一維存儲器中存放二維數(shù)組,可有兩種方式:一種是按行排列, 即放完一行之后順次放入第二行。另一種是按列排列, 即放完一列之后再順次放入第二列。在語言中,二維數(shù)組是按行排列的。 如前面圖示的 int a46數(shù)組,先存放a0行,再存放a1行、a2行,最后存放a3行。每行中有六個元素也是依次存放。由于數(shù)組a說明為int類

4、型,該類型占兩個字節(jié)的內(nèi)存空間,所以每個元素均占有兩個字節(jié))。醉鼠游街問題 一只酒醉的老鼠,放在9行15列的方格磚面的地街上,任其游街,若醉鼠沿上下左右方向每一步游街一方格,求出在100步內(nèi),醉鼠訪問了哪些位置的方格及其次數(shù)。 9行15列的方格磚地街可以用兩維數(shù)組表示: int c1016 例如: c35=1 表示醉鼠到達過第三行第五列的那一塊方格磚一次。 醉鼠上下左右四個方向游動,用一維數(shù)組int mx5, my5 表示 對應上下左右四個方向的運動可以用下面四組數(shù)據(jù)表示: mx1= 1; my1= 0; mx2= 0; my2= -1; mx3= -1; my3= 0 ; mx4= 0; my4= 1 ; 醉鼠游動的方向是隨機的。用r來產(chǎn)生14之間的一個方向數(shù) r = rand()%4 + 1 ; 結(jié)合前面給出的兩組數(shù)據(jù)結(jié)構(gòu)描述的方格磚地街與方向數(shù)組,醉鼠每游動一塊方格磚,就可以如下編寫相應的程序,記錄下醉鼠游動的過程。 x=8; y=5; for (s=1; s=100; s+) r= rand() % 4 +1; x=x+mxr; y=y+myr; if ( (x15) | (y9) x=x-mxr; y=y-myr; s-; cyx=cyx+1; ; 練習題、利用前面敘述的方法完成醉鼠游街問題。、用”

溫馨提示

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

評論

0/150

提交評論