1樓:匿名使用者
120就是a[0,0,0]的位置,行序主序就是一行一行的往後排,a000,a001....a010,a011,...a055,a056,a100,a101這樣
123的位置,000,001,002,003 004 005 006 010 011...016 020 021...026 030..
040...050...056...
100 101 102...110 111 112 113 114 115 116 120 121 122 123
一行佔6*7*2=84個儲存單元
3行為252個,前4列佔4*7*2=56個儲存單元,a[3,4,0]的地址為120+252+56=428
所以a[3,4,5]的地址為428+5*2=438
2樓:厚琅其梓楠
陣列和廣義表不是同一種概念,
陣列是在程式設計中,為了處理方便,
把具有相同型別的若干變數按有序的形式組織起來的一種形式。這些按序排列的同類資料元素的集合稱為陣列。在c語言中,
陣列屬於構造資料型別。一個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、指標陣列、結構陣列等各種類別。
廣義表是由零或多個單元素或子表組成的有序列,廣義表也可能為空表。
資料結構:陣列和廣義表問題
3樓:本未終始
2.二維陣列m的成員是6個字元(每個字元佔一個儲存單元,即一個位元組)組成的串,行下標i的範圍從0到8,列下標j的範圍從0到9,則存放m 至少需要①_ _個位元組;
m陣列的第8列和第5行共佔②____個位元組。
① a. 90 b. 180 c. 240 d. 540
a. 108 b. 114 c. 54 d. 60
答:① d.540
說明:m資料的元素總數為: (8-0+1)*(9-0+1)=90;每個元素的位元組數是:
6。因為總位元組數是:90*6=540。
此處「m的成員」應該指的是m陣列的元素。
②b.114
說明:第8列的元素個數:9個;第5行的元素個數:
10個。(其實每行和每列的個數都是一樣的,與8列,5行無關。此題出得費解!
)。總的元素個數:9+10=19,佔的位元組數是:
19*6=114
15.設廣義表l=((a,b,c)),則l的長度和深度分別為( )。
a. 1和1 b. 1和3 c. 1和2 d. 2和3
答:c.1和2
說明:"長度"指廣義表中元素的個數,如l=(a,,a2,a3,...,an),長度為n,其中a1,a2,...
即可是原子也可是廣義表。在此列中只有一個元素(a,b,c),所以長度為1。
"深度"指廣義表中括弧的重數。空表也是廣義表,深度為1。求解廣義表的深度可使用遞迴方式。題意中深度為:2
資料結構陣列與廣義表 20
4樓:匿名使用者
壓縮矩陣行或列來儲存矩陣的格式是很普遍的,它們不會儲存不必要的元素(即空值)。但是它們也不是非常有效的,當在一個矩陣-向量積或預解決的每個簡單標量中需要間接定址。行壓縮儲存方式會把一個稀疏矩陣行的非零數值放在連續的儲存空間。
假設我們有一個非對稱的稀疏矩陣a
我們先定義3個向量:
一個浮點型別:val
兩個整型:col_ind , row_ptr
val向量用於儲存矩陣a的非零元素值,從第一行開始遍歷。col_ind 向量用於儲存 val 向量中值對應的列索引(這裡下標從0開始)。如下圖:
如果 val (k) =ai,j 那麼有 row_ptr(i)<= k < row_ptr(i+1)
如果我們的稀疏矩陣是對稱的,那麼我們只需要儲存上三角(或下三角)即可。
資料結構陣列和廣義表的一些問題
5樓:ak_到夫
2.應該是下三角的某個公式 3.按列序為主序 m=4 n=6 a[1][3]=a[0][0]+(m*j+i)*d=1000+(4*3+1)*3=1039 該陣列共佔 4*6*3=72 4.
按第二題的公式 a=8*(8+1)/2+5+1=42
陣列、廣義表和線性表之間有什麼關係
6樓:匿名使用者
陣列是編譯語言自帶的一種複合資料型別。
廣義表和線性表是資料結構方面的概念,它們都被定義為一個有限的序列(a1,a2,a3,…,an)。只不過線性表中ai被限定為單個的元素,而廣義表中ai可以是單個元素,也可以是一個子廣義表。所以線性表可以用陣列這種順序儲存結構來表示,也可以用連結串列來表示。
而廣義表一般只能用連結串列來表示。
7樓:吃什麼吐什麼
資料結構中沒有陣列這個概念,即使有,對應的也應該是靜態連結串列,靜態連結串列是線性表的一種,廣義表也是一種表,不過裡面的資料元素可以是遞迴的,
陣列屬於線性表,他倆同屬於線性結構
廣義表屬於樹形結構.
資料結構有關陣列和廣義表的一道題,求解答。c怎麼不行?
8樓:
因為用陣列儲存,那麼這裡說的工作指標j應該就是應該就是個陣列下標吧。結點是儲存一個值域和next域,next域裡存的就是下一個結點的下標,所以只要將當前結點next裡的值賦給j就行了。 而j本身並沒有next域之類的東西啊。
為什麼說陣列和廣義表示線性表的推廣。
9樓:匿名使用者
多維陣列中每個元素處於一個多元的線性關係,自然是線性表的推廣
廣義表中元素則是廣義線性(元素型別分原子和子表),同樣可以求表長、表頭、表尾,因此也是
c語言線性表和連結串列有什麼區別,C語言 線性表和連結串列有什麼區別
線性表是最基本 最簡單 也是最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第一個和最後一個資料元素之外,其它資料元素都是首尾相接的。線性表的邏輯結構簡單,便於實現和操作。因此,線性表這種資料結構在實際應用中是廣泛採用的一種資料結構。順序表是在計算機記憶體中以陣列的形式儲存的線...
線性表和順序表的區別,C語言中的線性表 順序表和連結串列到底是什麼關係?
線性表是鏈式儲存結構,用連結串列實現,使用空間多,且合理。而順序表基本上是用陣列實現的,使用空間有限,會造成浪費。順序表 靜態分配。程式執行之前必須明確規定儲存規模。隨機存取結構,主要是進行查詢,很少做插入和刪除操作時順序表。線性表 動態分配。只要記憶體空間尚有空閒,就不會產生溢位。從頭指標起順著掃...
何時選用順序表 何時選用連結串列作為線性表的儲存結構為宜
順序表的特點是按位訪問快,中間插入刪除慢,因此元素個數變動不大,經常按位置訪問適宜於順序儲存。順序表往往使用一組連續的記憶體,對固定元素的隨機存取 比如存取第幾個元素 很方便。因此更適合於存放需要多次修改的資料。連結串列的特點是隻能順序訪問,中間插入刪除快,因此適宜於元素個數變動較大,經常插入刪除的...