數(shù)組和廣義表

數(shù)組的定義和運算

C語言支持一維數(shù)組和多維數(shù)組嘴瓤。如果一個數(shù)組的所有元素都不是數(shù)組扫外,那么該數(shù)組稱為一維數(shù)組。

image.png
image.png

在java中數(shù)組被看成是一個對象筛谚,在定義數(shù)組時,有兩種定義方法:int[] a 和int a[]刻获;第二種是C/C++對數(shù)組定義方式,對于JAVA建議采用第一種定義方式瞎嬉。


image.png
image.png

image.png
image.png

n維數(shù)組中的元素,每一個元素都受著n個關系的約束氧枣,在每個關系中,數(shù)據(jù)元素都有一個直接的后繼元素便监,因此在這個 n個關系中的任一關系扎谎,就其單個關系而言烧董,仍是線性的關系毁靶。
當n=1時;n維數(shù)組的定義就銳化為線性表的定義预吆。反之,n維數(shù)組也可以看成是線性表的推廣胳泉。
二維數(shù)組可以看成是每個數(shù)據(jù)元素是一個線性表岩遗。


image.png

一個三維數(shù)組可以用其數(shù)據(jù)元素為二維的線性表來定義。
由此可見n維數(shù)組是一種較為復雜的數(shù)據(jù)結構凤瘦,但它可以由簡單數(shù)據(jù)結構--線性表輾轉合成而得。n維數(shù)組是一種“同構”的數(shù)據(jù)結構蔬芥,即它的每個數(shù)據(jù)元素的數(shù)據(jù)類型相同梆靖。

數(shù)組的兩種操作:

(1)給定一組下標笔诵,存取相應的數(shù)據(jù)元素返吻;
(2)給定一組下標嗤放,修改相應的數(shù)據(jù)元素中的某一個或者幾個數(shù)據(jù)項的值思喊;

數(shù)組的順序存儲結構

由于數(shù)組一般不做插入或者刪除的操作,一旦建立了數(shù)組恨课,則結構中的數(shù)據(jù)元素個數(shù)和元素之間的關系就不在發(fā)生變動,因此采用順序存儲結構表示數(shù)組是自然的事岳服。
由于存儲單元是一維的結構,而數(shù)組是一個多維的結構吊宋,則用一組連續(xù)的存儲單元存放數(shù)組的數(shù)據(jù)元素就有次序的約定的問題纲辽,例如對于二維數(shù)組的存儲方式璃搜,一種是以列序為主序存儲拖吼,另一種是以行序為主序存儲。

矩陣的壓縮存儲

矩陣是很多科學與工程計算問題中研究的數(shù)學對象吊档,如何存儲矩陣的元,使得矩陣的各種運算能夠有效的進行唾糯。通常的高級語言編制程序時怠硼,都是用二維數(shù)組來存儲矩陣的元移怯,有的語言中還提供了各種矩陣的運算香璃,方便用戶使用舟误。
數(shù)值分析中經(jīng)常出現(xiàn)一些階數(shù)很高的矩陣葡秒,同時在矩陣中有很多值相同的元素,或者零元素同云。有時為了節(jié)省存儲空間糖权,可以對此類的矩陣進行壓縮存儲堵腹。壓縮存儲是指,為多個值相同的元只分配一個存儲空間疚顷。

特殊矩陣

假若值相同的元素或者零元素在矩陣中的分布有一定的規(guī)律旱易,我們稱這種矩陣為特殊矩陣腿堤,反之為稀疏矩陣阀坏。

對稱矩陣

對于對稱矩陣笆檀,我們可以為每一對對稱元分配一個存儲空間忌堂,則可以將n的平方個元壓縮存儲到n(n+1)/2個元的空間中。

image.png

以下例子引用http://c.biancheng.net/cpp/html/966.html

對稱矩陣的特點是:在一個n 階方陣中士修,有aij=aji ,其中1≤i , j≤n樱衷,如圖5.5 所示是一個5階對稱矩陣。對稱矩陣關于主對角線對稱矩桂,因此只需存儲上三角或下三角部分即可沸移,比如侄榴,我們只存儲下三角中的元素aij雹锣,其特點是中j≤i 且1≤i≤n,對于上三角中的元素aij 蕊爵,它和對應的aji 相等,因此當訪問的元素在上三角時涣达,直接去訪問和它對應的下三角元素即可,這樣度苔,原來需要nn 個存儲單元匆篓,現(xiàn)在只需要n(n+1)/2 個存儲單元了,節(jié)約了n(n-1)/2個存儲單元鸦概,當n 較大時,這是可觀的一部分存儲資源。
如何只存儲下三角部分呢窗市?對下三角部分以行為主序順序存儲到一個向量中去,在下三角中共有n
(n+1)/2 個元素咨察,因此论熙,不失一般性摄狱,設存儲到向量SA[n(n+1)/2]中脓诡,存儲順序可用圖5.6 示意媒役,這樣祝谚,原矩陣下三角中的某一個元素aij 則具體對應一個sak,下面的問題是要找到k 與i交惯、j 之間的關系。

image.png

角中的元素aij穿仪,其特點是:i≥j 且1≤i≤n,存儲到SA 中后牡借,根據(jù)存儲原則拳昌,它前面有i-1行钠龙,共有1+2+…+i-1=i(i-1)/2 個元素炬藤,而aij 又是它所在的行中的第j 個,所以在上面的排列順序中碴里,aij 是第i(i-1)/2+j 個元素,因此它在SA 中的下標k 與i咬腋、j 的關系為:

k=i(i-1)/2+j-1 (0≤k<n(n+1)/2 )
若i<j羹膳,則aij 是上三角中的元素根竿,因為aij=aji 陵像,這樣寇壳,訪問上三角中的元素aij 時則去訪問和它對應的下三角中的aji 即可醒颖,因此將上式中的行列下標交換就是上三角中的元素在SA 中的對應關系:
k=j(j-1)/2+i-1 (0≤k<n(n+1)/2 )

對角矩陣

所有的非零元都集中在以對角線為中心的帶狀區(qū)域中。


image.png

對于一個矩陣結構顯然用一個二維數(shù)組來表示是非常恰當?shù)呐⑶福谟行┣闆r下,比如常見的一些特殊矩陣,如三角矩陣腰耙、對稱矩陣、帶狀矩陣挺庞、稀疏矩陣等晰赞,從節(jié)約存儲空間的角度考慮挠阁,這種存儲是不太合適的宾肺。下面從這一角度來考慮這些特殊矩陣的存儲方法侵俗。

稀疏矩陣

image.png

按照壓縮存儲的概念,只存儲稀疏矩陣的非零元丰刊,同時記下她所在的行列的位置。

廣義表的定義

廣義表的存儲結構

m元多項式的表示

廣義表的遞歸算法

求廣義表的深度

復制廣義表

建立廣義表的存儲結構

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啄巧,一起剝皮案震驚了整個濱河市寻歧,隨后出現(xiàn)的幾起案子秩仆,更是在濱河造成了極大的恐慌码泛,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件噪珊,死亡現(xiàn)場離奇詭異,居然都是意外死亡齐莲,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門选酗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阵难,“玉大人芒填,你說我怎么就攤上這事呜叫。” “怎么了殿衰?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長播玖。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么维蒙? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任掰吕,我火速辦了婚禮颅痊,結果婚禮上殖熟,老公的妹妹穿的比我還像新娘。我一直安慰自己菱属,他們只是感情好,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布舰罚。 她就那樣靜靜地躺著,像睡著了一般营罢。 火紅的嫁衣襯著肌膚如雪赏陵。 梳的紋絲不亂的頭發(fā)上饲漾,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天蝙搔,我揣著相機與錄音,去河邊找鬼吃型。 笑死,一個胖子當著我的面吹牛僚楞,可吹牛的內(nèi)容都是我干的勤晚。 我是一名探鬼主播镜硕,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼运翼,長吁一口氣:“原來是場噩夢啊……” “哼兴枯!你這毒婦竟也來了血淌?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤悠夯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后躺坟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沦补,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡咪橙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年夕膀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片产舞。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡魂奥,死狀恐怖易猫,靈堂內(nèi)的尸體忽然破棺而出耻煤,到底是詐尸還是另有隱情,我是刑警寧澤哈蝇,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站攘已,受9級特大地震影響,放射性物質發(fā)生泄漏贯被。R本人自食惡果不足惜眼五,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一彤灶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧批旺,春花似錦幌陕、人聲如沸汽煮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽心例。三九已至,卻和暖如春鞋囊,著一層夾襖步出監(jiān)牢的瞬間止后,已是汗流浹背溜腐。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工译株, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人歉糜。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像望众,于是被迫代替她去往敵國和親匪补。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容

  • VisuAlgo!一夯缺,Date Structure的核心技術是分解和抽象二始锚,基本概念和常用術語 三喳逛,邏輯結構1瞧捌,邏...
    斜杠青年許晏銘閱讀 893評論 0 0
  • 1 序 2016年6月25日夜咖城,帝都,天下著大雨廉涕,拖著行李箱和同學在校門口照了最后一張合照典蝌,搬離寢室打車去了提前租...
    RichardJieChen閱讀 5,108評論 0 12
  • 今天的天似乎格外的亮,云似乎格外的柔骏掀,草似乎格外的綠鸠澈,我當然也是格外的興奮啦截驮!趁著周未的時間笑陈,我走進了這個美麗的寶...
    ym陽媚閱讀 1,021評論 3 2
  • 作者 姜蘇 臘梅弄這套房的前面,也就是陽面涵妥,和每家一樣,都有一不大的空地坡锡,空地周圍栽種了一圈齊人高的蓬网,枝繁葉茂而...
    姜蘇閱讀 193評論 0 0