最近開始在「牛客網」上做題,希望通過日積月累,每天記錄一點小知識,每天前進一小步。
今天練習的題目關於陣列。
線性表邏輯上是線性的,儲存上可以是順序的,可以是鏈式的
鏈式儲存可以連續,可以不連續,儲存時不管其連續還是不連續,都是用指標指向下乙個結點
有乙個100*90的稀疏矩陣,非0元素有10個,設每個整型數占2位元組,則用三元組表示該矩陣時,所需的位元組數是(66)
解析:每個元素要用行號,列號,元素值來表示,由於二維稀疏矩陣的大小都是在256之內,所以行號和列號只需要char來儲存。在用三元組表示稀疏矩陣,還要三個成員來記住,矩陣的行數列數,總的元素數,所以所需的位元組數是10*(1+1+1)*2+3*2=66
a. a+sizeof(int)
// 不正確, 在32位機器上相當於指標運算 a + 4
b. &a[0]+1
// 正確,陣列首元素位址加1,根據指標運算就是a[1]的位址
c. (int*)&a+1
// 正確,陣列位址被強制型別轉換為int*,然後加1,這樣和b表示的乙個意思
d. (int*)((char*)&a+sizeof(int))
// 正確,資料位址先被轉換為char*,然後加4,根據指標運算公式,向前移動4 * sizeof(char),之後被轉換為int*,顯然是a[1]的位址
假設以行序為主序儲存二維陣列a=array[100][100],設每個資料元素佔2個儲存單元,基位址為10,則a[5,5]的位址為(1020)。
解析:a[5][5]的位址為:5*100*2+5*2+10=1020,千萬不要忘記基址是10,不是0
牛客網刷題之陣列
題目描述 現在有乙個僅包含 x 和 o 的二維板,請捕獲所有的被 x 包圍的區域 捕獲乙個被包圍區域的方法是將被包圍區域中的所有 o 變成 x 例如 x x x x x o o x x x o x x o x x 執行完你給出的函式以後,這個二維板應該變成 x x x x x x x x x x x...
牛客網陣列專項練習(一)
1 要表示10個學生的成績,下列宣告並初始化陣列正確的是 正確答案 d int score new int int score 10 int score new int 9 int score new int 10 陣列初始化有三種方式 動態初始化 陣列定義與為陣列分配空間和賦值的操作分開進行 靜態...
牛客網刷題筆記
今天在牛客網刷了一道求最長字串是回文數的長度,剛開始的時候,我用兩個指標,乙個指前邊,乙個指後邊,對比兩個指標指向的值,相等則前邊的指標後移,後邊的指標前移,然後再判斷是否相等,如果不相等,那麼就不是回文數,前邊的指標回到第一次開始的地方,後邊的指標回到第一次開始的地方,前邊的指標再自加後移移位,然...