2005下半年高程考試 下午第四題

2021-04-06 17:30:33 字數 1067 閱讀 4542

試題四(共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 和密碼...