<< endl;system("pause"); //暂停}//开放地址法哈希查找void OpenHashLocate(){HashTable HT;for (int i = 0; i < sum; i++)HT.Insert(WF[i]); //把数据插入到哈希表中while(true){system("cls"); //清屏cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;cout << "---基于开放地址法的哈希查找---" << endl;cout << "1.词频统计" << endl;cout << "2.单词查找" << endl;cout << "3.返回上一级" << endl;cout << "请按相应的数字键进行选择:" << endl;int n;cin >> n;switch (n){case 1 : HT.Print(); //词频统计break;case 2 : OpenHashLocateMenu(); //开放地址法的哈希查找菜单break;case 3 :return;default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause"); //暂停} //switch} //while}//链地址法哈希查找void LinkHashLocate(){HashTableLink HT;for (int i = 0; i < sum; i++)HT.Insert(WF[i]); //把数据插入到哈希表while(true){system("cls"); //清屏cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;cout << "---基于链地址法的哈希查找---" << endl;cout << "1.词频统计" << endl;cout << "2.单词查找" << endl;cout << "3.返回上一级" << endl;cout << "请按相应的数字键进行选择:" << endl;int n;cin >> n;switch (n){case 1: HT.Print(); //词频统计break;case 2:LinkHashWordLocateMenu(); //单词查找菜单break;case 3: return; //退出函数default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause"); //暂停} //switch} //while}//链地址法哈希查找菜单void LinkHashWordLocateMenu(){HashTableLink HT;for (int i = 0; i < sum; i++)HT.Insert(WF[i]); //把数据插入到哈希表double load_factor = sum / MaxSize;//散列表的装填因子system("cls");cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;cout << "---链地址单词查找---" << endl;cout << "请输入要查找的单词:";string word;cin >> word;auto start = system_clock::now(); //开始时间HT.Search(word);duration
11、主菜单
//主函数int main() {ifstream fin;fin.open(file);//关联文件fileif (!fin.is_open()) {cout << "file.txt文件不存在,请检查文件名或者目录下文件是否存在 。" << endl;system("pause"); //暂停return 0;} //ifelse {cout << "file.txt文件加载中..." << endl;Sleep(1000);//延时1秒} //elseStatisticsData(); //数据统计MajorMenu();//主菜单return 0;}//主菜单void MajorMenu() {while (true) {cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;cout << "---菜单---" << endl;cout << "1.基于线性表的查找" << endl;cout << "2.基于二叉排序树的查找" << endl;cout << "3.基于哈希表的查找" << endl;cout << "4.退出系统" << endl;cout << "请按相应的数字键进行选择:" << endl;int n;cin >> n;switch (n) {case 1:ListMenu();break;case 2:BiTreeMenu();break;case 3:HashMenu();break;case 4:cout << "系统已退出" << endl;return;default:cout << "输入的不是有效符号,请重新输入" << endl;system("cls"); //清屏system("pause"); //暂停} //switch} //for}
六、运行结果
运行结果我放在了糅合版
七、总结
通过这次实验,让我对顺序表、链表、二叉排序树、连地址哈希表和开放地址哈希表的结构有了更深刻的认识;学会如何去使用基于以上结构的顺序查找、折半查找等;还学会了如何输出查找时间以及他们的ASL(平均查找长度)
- vue双向绑定的原理及实现双向绑定MVVM源码分析
- vue中如何简单使用vue.draggable组件实现拖拽功能
- 三 用Abp实现短信验证码免密登录:Vue网页端开发
- 使用Yeoman实现vue项目结构创建
- android framework 系统native c/c++源码查看跳转工具
- angular ui-router:简单的单页面嵌套路由的实现过程
- 提升生鲜B2B电商系统的效率与品质,实现采购与销售的双赢
- 来自本科生的暴击:清华开源「天授」强化学习平台,纯PyTorch实现
- 支持单选、多选 Android本地历史记录、及产品标签实现(附源码)(使用
- micropython 驱动是如何实现的_ESP8266使用Micropytho