C++題目#include
const OBS_MAXNUM=20;
__(1)___;
class DocExplorer{
public:
DocExplorer ((2)*doc);
___(3)___ void update(OfficeDoc *doc)=0;
};
class OfficeDoc {
private:
DocExplorer *myObs[OBS_MAXNUM]
int index;
public:
OfficeDoc(){
index=0;
void attach (DocExplorer *o){
if (index >=OBS_MAXNUM||o== NULL) return;
for (int loop = 0; loop
myObs[index] = o;
index++;
}
void detach(DocExplorer) *o{
if(o==null) return;
for (int loop = 0;loop
if(loop<=index-2) myObs[loop] = myObs[index-1];
myObs[index-1]=NULL;
index--;
break;
}
}
}
private:
void notifyObs() {
for(int loop=0;loop
}
};
DocExplorer:ocexplorer(OfficeDoc *doc){
doc->______(5)_____;
}
試題四:
散列文件的存儲單位稱為桶(BUCKET)。假如一個桶能存放m個記錄,當桶中已經有m個同義詞(散列函數(shù)值相同)的記錄時,存放第m+1個同義詞會發(fā)生“益出”。此時需要將第m+1個同義詞存放到另一個“益出桶”的桶中。相對的,稱存放 前m個同義詞的桶稱為基桶。益處桶和基桶大小相同,用指針鏈接。查找指定元素記錄時,首先在基桶中查找。若找到,則成功返回,否則沿指針到益處桶中查找。
為了簡化起見,散列文件的存儲單位以內存單元表示。
函數(shù)InsertToHashTable(int NewElemKey)的功能是:若新的元素NewElemKey正確插入散列文件中。則返回1,否則 0。
采用的散列函數(shù)為Hash(NewElemKey)= NewElemKey% P,其中P為設定的基桶數(shù)目。
函數(shù)中使用的預定儀符號為:
#define NULLKEY –1 /*散列桶的空閑單元標示*/
#define P 7 /*散列文件基桶的數(shù)目*/
#define ITEMS 3 /*基桶和益處桶的容量*/
typedef struct BucketNode{ /*基桶和益處桶的類型定義*/
int KeyData[ITEMS];
struct BucketNode *link;
}BUCKET;
BUCKET Bucket
; /*基桶的空間定義*/
Int InsertToHashTable(int NewElemKey)
{/*將元素NewElemKey 插入散列桶中插入成功則返回0,否則返回-1 。設插入第一個元素前基桶的所有 KeyData[],link域已分別初始化為NULLKEY,NULL*/
int Index; /*基桶編號*/
int i,k;
BUCKET * s,*front,*t;
___________(1)________;
for(I=0; I< ITEMS; I++) /*在基桶查找空閑單元,若找到則將元素存入*/
if(Bucket[Index].KeyData ==NULLKEY)
{
Bucket[Index].KeyData = NewElemKey; break;
}
if(____(2)___) return 0; /*若基桶已滿,則在益出桶查找空閑單元,若找到則申請新的益出桶*/
_________(3)___; t = Bucket[Index].Link;
if(t!= NULL)
{
while(t != NULL)
{
for (k=0;k
{
tà KeyData[k] = NewElemKey; break;
}/*if*/
front = t;
if (___(4)___) t = tàLink;
else break;
}/*while*/
}
if(___(5)___) /*申請新的益出桶并將元素存入*/
{
s=(BUCKET *)malloc(sizeof(BUCKET));
if (!s) return –1;
sàLink = NULL;
for(k = 0;k
sà KeyData[0] = NewElemKey;
______(6)____;
}
return 0;
}
特別說明,以上是網友回顧的試題和答案,并非官方文件,僅供參考
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |