11.1-1
從直接定址表底部向上搜尋,找到第乙個非空槽即是最大元素。最壞情況下是 θ(
m)。11.1-2
位向量的每一位代表乙個元素是否存在(用1和0表示)。為了修改或者查詢位向量需要用到 &、| 等操作。
11.1-3
使用雙鏈表來解決衝突,特別的對於搜尋操作,題目也沒說清楚就預設是返回第乙個元素。
11.1-4
按照書上的提示,我們有乙個類似於棧的陣列
s ,其大小應該是字典元素的最大個數,另外還有乙個 to
p[s]
指標,我們存放在 s[
0]中,所以 s[
1..t
op[s
]]是有效的。
假設現在有乙個關鍵字
k 儲存在陣列(我們取名為 t),
t[k]
存放陣列
s 中的索引,設 t[
k]=j
,則在陣列 s[
j]中存放的是關鍵字
k 。舉個栗子,設關鍵字存放在陣列
t的下標為
5 的位置,且 t[
5]=3
,則在陣列
s 中有 s[
3]=5
。 另外由於陣列
s 小於陣列
t,我們可以附加乙個和陣列
s 一樣大的陣列 s′
,用於存放指向物件。現在有乙個有效的物件
x ,它的關鍵字為 k,則
s′[t
[k]]
指向 x 。
現在對於search
,給乙個關鍵字
k,我們驗證 1≤
t[k]
≤top
[s] 以及 s[
t[k]
]=k ,如果是的就返回 s′
[t[k
]],否則返回空。
對於insert
,假設關鍵字不在字典中,我們增加 to
p[s]
,然後 s[
top[
s]]=
k,s′
[top
[s]]
=k,t
[k]=
top[
s]。
對於delete
,假設關鍵字在字典中,我們打破「有效的迴圈」,然後填補刪除操作的空缺即可。s[
t[k]
]←s[
top[
s]]s
′[t[
k]]←
s′[t
op[s
]]t[
s[t[
k]]]
←t[k
]t[k
]←0t
op[s
]←to
p[s]
−1
直接定址表
1 描述了單元長度的標號 後面沒有冒號的標號可以同時描述記憶體位址和單位長度。因為這種標號包含了對單元長度的描述,所以,在指令中,它可以代表乙個段中的記憶體單元。稱為資料標號。2 一般來說,我們不會在 段中定義資料,而是將資料定義到其他段中。注意 1.在後面加有 的位址標號,只能在 段中使用,不能在...
直接定址表
這篇文章中,我們將討論如何有效合理的組織資料,以及相關的程式設計技術.一 描述了單元長度的標號 首先,我們來看乙個簡單的例子 assume cs code code segment a db 1,2,3,4,5,6,7,8,9 b dw 0 start mov si,offset a mov di,...
直接定址表
1.資料標號 關於標號 在彙編 中,可以用標號表示該段 的記憶體位址 標號格式為,標號名加冒號 start 例如 下面的 中 start 就是標號 start mov ax,0 mov bx,ax 關於資料標號 普通的標號只能表示記憶體位址 資料標號即可表示記憶體位址,也可表示記憶體單元的長度 使用...