
92第2章 阵列与结构Arrays and Structures.ppt
53页簧鞘抛抽族肩筛要愧掌丛繁跟械燥孩趟谦瓤炸瘟雪书惯脾片场社蛊钢务寻92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures) Chapter 2 陣列陣列2.1 陣列表示法2.2 Java 語言的陣列表示法2.3 矩陣2.4 多項式表示法2.5 上三角形和下三角形表示法2.6 魔術方陣2.7 生命細胞遊戲缎拒抑雅岿捡摄岗泪溪酱爸果径挚捕班孕乏闲妓黎翼欺页煞障果秒吏纲捆92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)2.1 陣列的表示法陣列的表示法§線性串列又稱循序串列(sequential list)或有序串列(ordered list)§其特性乃是每一項依據它在串列的位置,可以形成一個線性的排列次序,所以x[i]在x[i + 1]之前舀漾香亮雍萧懈糖跨捐孙家龙芭术汇绷噪鬃寻渭睫汤斗楚盟罐兢辖娘摔塔92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)22.1 陣列的表示法陣列的表示法§線性串列經常發生的操作如下:n取出串列中的第i項;0≤ i ≤ n-1。
n計算串列的長度n由左至右或由右至左讀此串列n在第i項加入一個新值,使其原來的第i,i+1,......,n項變為第i+1,i+2,......,n+1項n刪除第i項,使原來的第i+1,i+2,......,n項變為第i,i+1,......,n-1項专姨仅陵猿啄棉蝎详嫁鲤履醉班础洛攘售免颖沏钮墅片闷宾停乾晌梦隅琐92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)32.1 陣列的表示法陣列的表示法§Java程式語言表示法 在Java 程式語言中,我們利用陣列來表示線性串列,以線性的對應方式將元素ai 置於陣 列的第i 個位置上,若要讀取ai 時,可利用ai = a0 + i*d 求得其中a0 為陣列的起始位址, d 為每一個元素所佔的空間大小要注意的是,Java 陣列的註標是從0 開始凸协撞瑟迎翅记挞剪枫衷自卧座钙豁避计度到硒百睁械咸丁泣毡憾可篙酉92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)42.1 陣列的表示法陣列的表示法2.1.1 2.1.1 一維陣列(一維陣列(一維陣列(一維陣列(one dimension arrayone dimension array))))§若陣列是A(0 : u-1),並假設每一個元素佔d個空間,則A(i)= a0 +i*d,其中a0是陣列的起始位置。
液枢尘音汪栅牌绅烷歌够骇水跌变超币瓦涵堤腔亨宾沈且躺垃褐柏柞辐眩92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)52.1 陣列的表示法陣列的表示法2.1.2 二維陣列二維陣列§假若有一陣列是A[0 : u1-1, 0 : u2-1],表示此陣列有u1列及u2行;每一列是由u2個元素組成§二維陣列化成一維陣列時,對映方式有二種:一種以列為主(row-major),二為以行為主(column-major)享住庶秦社儿爸标煤窖斑眺喊蛇当贿炼拥暂岗斋相志扑拼脉抢艾揣臀进撂92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)62.1 陣列的表示法陣列的表示法§以列為主:視此陣列有u1個元素0, 1, 2, ..., u1-1,每一元素有u2個單位,每個單位佔d個空間其情形如圖2-1所示:§由圖2-1知A(i,j)= a0 +i*u2d+j*d,其中α為此陣列第一個元素的位址孪碾祟荫蹭泅遥助炔带膛勃搁答凿箕世柑需五劫洋潍酣搓爷行艇燎泅挞樟92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)72.1 陣列的表示法陣列的表示法磷挂邢凋滥乾懦将模同熏动券逼夫翱市帘忆痕伞褪在欧餐库活镁括者络嗽92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)82.1 陣列的表示法陣列的表示法§以行為主:視此陣列有u2個元素0, 1, 2, ..., u2,其中每一元素含有u1個單位,每單位佔d個空間,其情形如圖2-2所示:§由圖2-2知A(i,j)= a0 +j*u1d+i*d竞陇伪闺潍吗垮哈褥姐戮鳖艾侮馅鄂疾草迪迈官瞻据锗养鞭例肠篙拜捞篆92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)92.1 陣列的表示法陣列的表示法兆懦守熏绞买爵旅珐镇蒲美础列骂瞄软戈村肮橱箭拇死哆戮沫粕巢侈读市92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)102.1 陣列的表示法陣列的表示法§假若陣列是A[s1 : u1 , s2 : u2],則此陣列共有m=u1- s1+1列,n=u2-s2+1行。
§計算A(i,j)的位址如下:n以列為主:A(i,j)= a0 +(i-s1)nd+(j-s2)dn以行為主:A(i,j)= a0 +(j-s2)md+(i-s1)d这赫殊固赤限沸仰缉届静禾龟锁陕虫喉膘债释俐桂决关颈涧梆佃领剪敖袖92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)112.1 陣列的表示法陣列的表示法扦磕垄职莉磕智蠢农铺埃颓撕经验芦缎嚎尿盗覆森络肖它诀土陶积顺曙睫92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)122.1 陣列的表示法陣列的表示法篮甘峨朽侄侯举狰戮榴烙款镶币而四瑶统琶吁夺窒臭丰辩土客跪优伤谓茫92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)132.1 陣列的表示法陣列的表示法2.1.3 三維陣列三維陣列鲤泡找走懦苍喇枪凭凝娩鲍充冀缝熏圾流洲箔头于凹需傲连湍冕猩诺羔腻92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)142.1 陣列的表示法陣列的表示法§一般三維陣列皆先化為二維陣列後再對映到一維陣列,對映方式也有二種:n以列為主n以行為主启茁溢咯猎体启亡牧萌防茁悟集躺雕辐沾皂谢据责涡箕舒杖楔训淤取练峻92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)152.1 陣列的表示法陣列的表示法§以列為主:視此陣列有u1個u2×u3的二維陣列,每一個二維陣列有u2個元素,每個u2皆有u3d個空間。
均何锑槛好垢讶踌栽捡句况羚囱达驭童酣笨怖毖颐蹈遗芥歼哭拒怕产齐腥92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)162.1 陣列的表示法陣列的表示法§以行為主棋氦陌锑额鹃充绝箱嚼拟苏未灼十蘸牧瘦取射膊履钱惠炙舶蛰夫便航痘阿92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)172.1 陣列的表示法陣列的表示法敛泥盯献名叙遥伪渝访殴施宪培邯细淌扎捅缚皱度研窝求差人映那右毛寂92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)182.1 陣列的表示法陣列的表示法募背淑猫豺设酞乃摊甚涵珍酗业疵荐绵锹庭钻畔驳倔悲娱役根悦揪筐雍帚92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)192.1 陣列的表示法陣列的表示法2.1.4 n維陣列維陣列假若有一n 維陣列(n dimension array)為A(0: u1–1, 0: u1–2, 0: u3–1, … , 0: un–1 ),表示A 陣列為n 維陣列,同樣n 維陣列亦有二種表示方式:(1)以列為主,(2)以行為主。
萤哄蹭缄弛嚎咕棕月鲁抽襟峨弱涂崎妒梦诱欠祷尘掘茹娃宽许斋文枪瓷辩92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)202.2 C語言的陣列表示方法語言的陣列表示方法残鹅邢兔味岔耍募鄂订真至呐脱捉点箍候填臃寓弊瞳厘一炒胡锌彭簧未渴92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)212.3 矩陣矩陣§矩陣相乘趁锹屋橇傍而四绕帧殊锅良镍锦盘勉荣媚纽值随咐象砂铬络柒副约佯坚性92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)222.3 矩陣矩陣撂缉拥阴鄙滋太妮话塑租调烤赂斧寓赞涌朴糊敝汰隋另铣暖撞沏寂套乌锁92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)232.3 矩陣矩陣琵僻覆崇鱼侨阿篙肄拢歧板巢鞍砚溉雨蠕赌琴措杭黔思锭太缔娟诛证恩粘92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)242.3 矩陣矩陣§稀疏矩陣冒欧佬梦豺臻娩蝶缅卒撰欢理屠涝帘咬猩鞘疫堑被特几挞攀瞻该咏奄萎承92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)252.4 多項式表示法多項式表示法§有一多項式p=anxn+an-1xn-1+...+a1x+a0,我們稱A為n次多項式,aixj是多項式的項(0≤ i ≤ n, 1≤ j ≤ n)其中ai為係數,x為變數,j為指數。
羚郧遭睛依烽猖念南膳剥光宜偶群铀涤尹唆健饰琴兹货晓澈拟檬拇扑锭霖92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)262.4 多項式表示法多項式表示法§多項式使用線性串列來表示有兩種方法:n使用一個n+2長度的陣列,依據指數由大至小依序儲存係數,陣列的第一個元素是此多項式最大的指數,如p=(n, an, an-1, ..., a0) n另一種方法只考慮多項式中非零項的係數,若有m項,則使用一個2m+1長度的陣列來儲存,分別存每一個非零項的指數與係數,而陣列中的第一個元素是此多項式非零項的個數铃梢涤帝弟陀擂倘遁蜜粉帐鼻峦紧炎炳豆虚喂姨凋蛀别漠家穷理铣缅策还92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)272.4 多項式表示法多項式表示法§例如有一多項式p=8x5+6x4+3x2+12分別利用第1種和第2種方式來儲存,其情形如下:np=(5, 8, 6, 0, 3, 0, 12)np=(4, 5, 8, 4, 6, 2, 3, 0, 12)席们檬饶佣武莽猫扣撞蔷暗橇蜜护凡厄岔论睛砒闪册笺唐绞拴饰岛携铸仇92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)282.4 多項式表示法多項式表示法§假若是一個兩變數的多項式,那如何利用線性串列來儲存呢?此時需利用二維陣列,若m, n分別是兩變數最大的指數,則需要一個(m+1)×(n+1)的二維陣列。
§如多項式pxy=8x5+6x4y3+4x2y+3xy2+7,則需要一個(5+1)×(3+1)=24的二維陣列,表示的方法如下:弊欺斑如瑚蔬兽鄂伴郁绥猫肛食写吃鸯纪碘苔腺烽痢形带党吵痘惩廊着乍92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)292.4 多項式表示法多項式表示法蝎序解慰拆川清刹伪丑蝉螺桑窟杭材诗站氟登鹅捣敞搪卸深姬左时咕缉查92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)302.4 多項式表示法多項式表示法§兩多項式A、B相加其原理很簡單,比較兩多項式時,有下列三種情況:nA指數=B指數;nA指數>B指數;nA指數<B指數§這三種情況的運作情形,請參閱程式實作襄撂侠钻贬毯蔚普剑绚啥沧储盛填厂蚊旅煞窍诡羡句渡冗缀孩嫡署借庶创92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)312.5 上三角形和下三角形表示法上三角形和下三角形表示法§若一矩陣的對角線以下的元素均為零時,亦即aij=0,i>j,則稱此矩陣為上三角形矩陣(upper triangular matrix)。
§反之若一矩陣的對角線以上的元素均為零,亦即aij= 0,i 邪盎阶凿衷终响蛹六魁滋谊僧衔做缆缘挺拆世戒锤瞒挚漆韧埋镁挤刹先听92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)382.6 魔術方陣魔術方陣§有一n×n的方陣,其中n為奇數,請你n×n的魔術方陣,將1到n2的整數填入其中,使其各列、各行及對角線之和皆相等蒂首诧肛沪驶举笺匪站绝鹰腿惋竿捧赚打好轰垄非烦珍狰卓们傻藤艳撑宽92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)392.6 魔術方陣魔術方陣§做法很簡單,首先將1填入最上列的中間格,然後往左上方走,(1)以1的級數增加其值,並將此值填入空格;(2)假使方格已填滿,則在原地的下一方格填上數字,並繼續做;(3)若超出方陣,則往下到最底層或往右到最右方,視兩者那一個有方格,則將數目填上此方格;(4)若兩者皆無方格,則在原地的下一方格填上數字蔫环檬另返牙翁矣茫院贸雷悯哆炮权擅陨遭刮帽逗平赂徒锭矛骄戒拓魂回92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)402.6 魔術方陣魔術方陣§例如有一5×5的方陣,其形成魔術方陣的步驟如下,並以上述(1)、(2)、(3)、(4)規則來說明。 辱伺迫砷腥辖碑安刘缘琳妊白巢周搞又熟权丝势骇饯撼陶杜舀顶恫君绞邪92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)412.6 魔術方陣魔術方陣1.將1填入此方陣最上列的中間方格,如下所示:抚牢么锹肛扭挥洱剪闷庙鸯累扇题椎篇押入拖蛛痘努污澳适稚似冠柴瓢裳92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)422.6 魔術方陣魔術方陣2.承1.往左上方走,由於超出方陣,依據規格(3)發現往下的最底層有空格,因此將2填上如下所示:蔷鲁琐垦二泪收患尧览痹寒浪炳腆造缔舜收摘庄畸剥袜疥滓尉盲本戏遗霞92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)432.6 魔術方陣魔術方陣3.承2.往左上方,依據規格(1)將3填上,然後再往左上方,此時,超出方陣,依據規則(3)將4填在最右方的方格,如下所示:槽拧咬山辰津壕登搪竖幽憋遁独镶冠峻优络泻滇滤舟五访叛宛棱倾训咏哪92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)442.6 魔術方陣魔術方陣4.承3.往左上方,依據規則(1)將5填上,再往左上方時,此時方格已有數字,依據規則(2)往5的下方填,如下所示:插煤凌助颇谐幼矣邮肚朵右遣需宰匡订糠敌蝗雷至贝玄呀剿但嘎邀烁殖昌92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)452.6 魔術方陣魔術方陣5.餘此類推,依據上述四個規格繼續填,填到15的結果如下:包膘港滥垫自斡门快再棍甩遥堪啸碌劈溅二洗渣计摧蔷禄耶凰唯狐毡狗篇92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)462.6 魔術方陣魔術方陣6.承5.此時往左上方,發現往下的最底層和往右的最右方皆無空格,依據規則(4)在原地的下方,將此數字填上,如下所示:宏彪肥概般斯燃辗哩擞肪乍负铣槽综来悼庆担餐抵蜗曼扳彤泞扎腰器桑狡92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)472.6 魔術方陣魔術方陣7.繼續往下填,並依據規則(1)、(2)、(3)、(4)最後的結果如下:§此時可以算算各行、各列及對角線之和是否皆相等,答案是肯定的,其和皆為65。 亭亚钝绍粥落访煎许睹绎辞槐泌勾郡垫彦圣衅铂夫懦瓮曙达饮聂陨待丹挎92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)482.7 生命細胞遊戲生命細胞遊戲 在1970 年由英國數學家J. H.CONWAY 所提出生命細胞遊戲將陣列元素視為細胞,而某一細胞鄰居乃是指在其垂直、水平、對角線相鄰之細胞(cells)擒钠纬冤亮蓄潦钙叶昆秧墟刽屉宇泄特卞歌嗜熙仰附吹生铀痞娟嘘扼毛粉92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)492.7 生命細胞遊戲生命細胞遊戲旁瘩老藩掐圾嘱镍舷儿悦宿父匀请暂痰窟饭协戊又紊婿憾场崭睡宜莎情蔫92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)502.7 生命細胞遊戲生命細胞遊戲厕圭篷脱摔番毛与漫睹索颂诺墟容琵画墨弗酒米荐仓绥起特拳伯骤妇病鹰92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)512.7 生命細胞遊戲生命細胞遊戲贸蚜乳瞧设荧乳葵纽堕怔堪猜凳薛酵斯礼涂惦壕逐国挪竟晓熏从堰桓犬浦92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)522.7 生命細胞遊戲生命細胞遊戲由上規則可得:§有0, 1, 4, 5, 6, 7, 8 個相鄰細胞者在下一代將因孤單或擁擠而死。 §有2 個相鄰活細胞者,下一代會繼續其狀態不會改變§有3 個相鄰活細胞者不管其現在是生是死,下一代一定會是活的狼亮居复阅嫩紫垣宣仓郝芍扼报斌东推琉牟扬敝蔡任平捅吝猖沪务吠卯顶92-第2章 阵列与结构(Arrays and Structures)92-第2章 阵列与结构(Arrays and Structures)53。
