数据结构 C++ 简单英汉字典 实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告:
简单英汉字典
2011-12-22实现目标及要求:
1)利用散列表实现英汉字典;
2) 实现散列表类,要求实现一种散列表:
•散列函数选取建议:将单词转成整数,再用除留余数法获得散列地址。
•冲突解决方法可采用开散列法。
3)实现字典类,字典数据存放在内存,字典类中有两个重要数据成员:•字典数组:存放字典数据的数组(或线性表)。
•散列表对象:作为字典数据索引的散列表。
–散列表元素结构包含单词和对应字典数据在字典数组中的下标,可通过散列表直接获得单词在字典数组的下标。
4)利用上面两个类实现英汉字典。
5)界面要求:键盘输入单词,屏幕输出解释:
–界面菜单项:
•1.添加新词
•2.删除单词
•3.查字典
–查字典界面:
•请输入英文单词:China
•中文翻译:中国
实验环境与工具:
使用Microsoft Visual Studio 2010 在Windows7 64位环境下进行实验。
实验思路:
分如下N步:
1.先实现链结点类的结构。
2.实现字典类的结构。
3.实现词条类的结构。
4.实现词条的散列表分类方法。
5.整合功能。
主要的数据结构如下:hinese!=""){
dicSize++;
}
ink=NULL;
ht[i].EntryLink=Entry
}
}
template
void Dictionary
ChainNode *p;
for(i=0;i insert(e[i]); } } template bool Dictionary ChainNode *p1,*p2; tableSize=5; k=()%tableSize; p1=&ht[k]; if(p1->link!=NULL){ p1=p1->link; while(p1->link!=NULL){ p1=p1->link; } } p2=new ChainNode; p2->EntryLink=ent; p2->link=NULL; p1->link=p2; return 0; } template bool Dictionary insert(*e); return 1; } template void Dictionary int i; ChainNode *p1; for(i=0;i ink!=NULL){ p1=&ht[i]; while(p1->link!=NULL){ p1=p1->link; p1->(); } } } 看已有的字典词条。"< cout<<"2.添加新的词条到字典。"< cout<<"3.删除已有词条。"< cout<<"4.查字典。"< cout<<"5.清屏。"< cout<<"6.退出程序。"< cout<<"******************************************************************** ********"< cout<<"请选择你要进行的操作:"; cin>>deed; cout<<"你选择的操作是:"< switch(deed){ case 1: cout< (); break; case 2: cout< cout<<"请输入新词条的key,为英文:"; cin>>str1; cout< cout<<"请输入该词条的value,为中文:"; cin>>str2; cout< (str1,str2); cout<<"你输入的词条为:"< eLit=new Entry eLit->output(); break; case 3: cout< cout<<"请输入要删去的词条的key,为英文:"; cin>>str1; if(str1)){ cout<<"删除成功!"< }else{ cout<<"删除失败,目标词条不存在……"< } break; case 4: cout< cout<<"请输入要查询的词条的key,为英文:"; cin>>str1;