試題四(共15分)
閱讀以下函式說明、圖和c**,將應填入_____(n)____ 處的字句寫在答題紙的對應欄內。
[說明]
雜湊檔案的儲存單位稱為桶(bucket) 。假如乙個桶能存放m個記錄,當桶中已有m個同義詞(雜湊函式值相同)的記錄時,存放第m+1 個同義詞會發生"溢位"。此時需要將第m+1 個同義詞存放到另乙個稱為"溢位桶"的桶中。相對地,稱存放前m個同義詞的桶為"基桶"。溢位桶和基桶大小相同,用指標鏈結。查詢指定元素記錄時,首先在 基桶中查詢。若找到,則成功返回,否則沿指標到溢位桶中進行查詢。
例如:設雜湊函式為hash(key)=key mod 7 ,記錄的關鍵字序列為15,14,21,87,96,293,35,24,149,19,63,16,103,77,5,153,145,356,51, 68,705,453 ,建立的雜湊檔案內容如圖4-1 所示。
[圖4-1]
為簡化起見,雜湊檔案的儲存單位以記憶體單元表示。
函式inserttohashtable(int newelemkey )的功能是:若新元素newelemkey 正確插入雜湊檔案中,則返回值1;否則返回值0。
採用的雜湊函式為hash(newelemkey)=newelemkey % p ,其中p設定的基桶數目。
函式中使用的預定義符號如下:
#define nullkey -1 /*雜湊桶的空閒單元標識*/
#define p 7 /*雜湊檔案中基桶的數目*/
#define items 3 /*基桶和溢位桶的容量*/
typedef struct bucketnode bucket;bucket bucket[p]; /*基桶空間定義*/
[函式]
int inserttohashtable(int newelemkey) /*if*/
if (____(4)____) t = t-> link;
else break;
} /*while*/
} /*if*/
if (____(5)____) /*if*/
return 0;
} /*inserttohashtable*/
2005下半年高程考試 下午第二題
試題二 共15分 閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內。說明 某企業決定開發乙個企業倉儲管理系統,由李工承擔系統的設計工作。該系統的網路連線如圖2 1 所示。圖2 1 該企業有多個倉庫,圖2 1 所示的中心資料庫儲存了各個倉庫中每種貨物的庫存資訊。每個倉 庫配備一台前端機...
2005下半年高程考試 下午第七題
試題七 共15分 閱讀以下說明和c 將應填入 n 處的字句寫在答題紙的對應欄內。說明 在一公文處理系統中,開發者定義了乙個公文結構officedoc,其中定義了公文應該具有的屬性。當公檔案的內容或狀態發生變化時,與之相 關聯的docexplorer 結構的值都需要發生改變。乙個officedoc 結...
2005上半年高程考試 下午第一題
試題一 15分 閱讀以下說明和資料流圖,回答問題1至問題3,將解答題紙的對應欄內。說明 學生住宿服務系統幫助學生在就學的城市內找以所需的住房,系統對出租的房屋資訊 房主資訊 需要租房的學生資訊以及學生和房主的會面住處進行管理和維護。房主資訊包括姓名 位址 號碼以及系統分配的唯一身份標識 id 和密碼...