陣列儲存位址的計算 資料結構

2021-09-19 16:27:25 字數 828 閱讀 8066

1. 陣列結構的特點

(1)陣列元素數目不變,一旦定義了乙個陣列結構,陣列元素個數就不會發生改變

(2)陣列元素具有相同的資料型別

(3)陣列元素的下標關係具有上下界的約束且下標有序

2. 陣列的兩個基本運算

(1)給定一組下標,訪問相應的資料元素

(2)給定一組下標,修改相應的陣列元素中某個資料項的值

3. 陣列的儲存

根據陣列結構的特點知道陣列一般不做插入和刪除操作,陣列的儲存適合採用順序儲存結構,二維陣列儲存結構可分為按行為主序和按列為主序兩種儲存方法。

4. 陣列儲存位址的計算

陣列型別

儲存位址的計算(a是陣列首位址,len是每個陣列元素所佔長度)

一維陣列

二維陣列:a[m-1][n-1],m行n列

按行儲存:a+(i*n+j)*len;按列儲存:a+(j*m+i)*len

5. 陣列儲存位址的計算示例

1)已知一維陣列a中每個元素占用2個位元組,求a[10]的儲存位址?

2)已知4行5列的二維陣列a中的每個元素占用2個位元組,求元素a[3][2]按行為主序儲存的儲存位址和按列為主序儲存的儲存位址?

答:按行儲存:a+(3*5+2)*2 = a+34

按列儲存:a+(2*4+3)*2 = a+22

棧實現表示式計算 資料結構

思路 所包含的運算子有 1 建立兩個棧,乙個用來儲存運算元,另乙個用來儲存運算子,開始時在運算子棧中先壓入 0 乙個表示式的結束符。2 然後從左至右依次讀取表示式中的各個符號 運算元或者運算子 3 如果讀到的是運算元直接存入運算元棧 4 如果讀到的是運算子,則作進一步判斷 若讀到的是 0 結束符,而...

計算陣列的子集

計算某個陣列的子集 在遞迴中不用 for迴圈和 visit 陣列,因為每個結果長度不一致,如果每個結果長度一致,比如求全排列,則需要用 for和 visit 但後者也可以用記錄層數的方式 public class main list li new arraylist fin nums,li,new ...

nyoj 128字首式計算 資料結構 佇列

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 先說明一下什麼是中綴式 如2 3 4 5這種我們最常見的式子就是中綴式。而把中綴式按運算順序加上括號就是 2 3 4 5 然後把運算子寫到括號前面就是 2 3 4 5 把括號去掉就是 2 3 4 5 最後這個式子就是該表示式的字...