数据结构-基于不同策略的英文单词的词频统计和检索系统-菜单

本文档详细介绍了使用线性表、二叉排序树和哈希表实现的英文单词词频统计与查找功能,包括顺序查找、折半查找、基于二叉搜索树的顺序查找以及开放/链地址法的哈希查找。通过实例演示了不同数据结构在单词检索中的应用和性能比较。
摘要由CSDN通过智能技术生成

数据结构之
基于不同策略的英文单词的词频统计和检索系统
本次更新了系统的菜单代码。
整个系统已全部更新完成,完整代码请前往专栏查看。或者点击下方:
传送通道

#include<iostream>
using namespace std;

void word_frequency_statistics() { cout << "空" << endl; system("pause"); return; }//词频统计
void word_sort() { system("pause"); return; }//单词查找

//线性表函数声明
void list_menu();         //线性表菜单
void seqlist_menu();      //顺序查找菜单
void seqlist_seq_menu();  //基于顺序表的顺序查找菜单
void linklist_seq_menu(); //基于链表的顺序查找菜单
void word_sort_menu();    //单词查找菜单
void half_seqlist_menu(); //折半查找菜单
void seqlist_half_sort();//基于顺序表的折半查找菜单	

//二叉排序树函数声明
void Bitree_menu();//二叉排序树菜单
void Bitree_seq_sort();//二叉排序树查找

//哈希表函数声明
void Hash_menu();//哈希表菜单
void open_Hash_sort();//基于开放地址法的哈希查找
void link_Hash_sort();//基于链地址法的哈希查找

//主菜单
void major_menu()
{
	for (; 1;)
	{

		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---菜单---" << endl;
		cout << "1.基于线性表的查找" << endl;
		cout << "2.基于二叉排序树的查找" << endl;
		cout << "3.基于哈希表的查找" << endl;
		cout << "4.退出系统" << endl;
		cout << "请按相应的数字键进行选择:" << endl;
		char major_menu_key;
		cin >> major_menu_key;
		switch (major_menu_key)
		{
		case '1': list_menu(); break;
		case '2': Bitree_menu(); break;
		case '3': Hash_menu(); break;
		case '4': cout << "系统已退出" << endl; return;
		default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause");
		}
	}
	return;
}

//线性表相关函数
//线性表菜单
void list_menu()
{
	for (; 1;)
	{
		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---基于线性表的查找---" << endl;
		cout << "1.顺序查找" << endl;
		cout << "2.折半查找" << endl;
		cout << "3.返回上一级" << endl;
		cout << "请按相应的数字键进行选择:" << endl;
		char list_menu_key;
		cin >> list_menu_key;
		switch (list_menu_key)
		{
		case '1': seqlist_menu(); break;
		case '2': half_seqlist_menu(); break;
		case '3': return;
		default:  cout << "输入的不是有效符号,请重新输入" << endl; system("pause");
		}
	}

	return;
}

//顺序查找菜单
void seqlist_menu()
{
	for (; 1;)
	{
		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---顺序查找---" << endl;
		cout << "1.基于顺序表的顺序查找" << endl;
		cout << "2.基于链表的顺序查找" << endl;
		cout << "3.返回上一级" << endl;
		cout << "请按相应的数字键进行选择:" << endl;
		char seqlist_menu_key;
		cin >> seqlist_menu_key;
		switch (seqlist_menu_key)
		{
		case '1': seqlist_seq_menu(); break;
		case '2': linklist_seq_menu(); break;
		case '3': return;
		default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause");
		}
	}

	return;
}

//基于顺序表的顺序查找菜单
void seqlist_seq_menu()
{
	for (; 1;)
	{
		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---基于顺序表的顺序查找---" << endl;
		cout << "1.词频统计" << endl;
		cout << "2.单词查找" << endl;
		cout << "3.返回上一级" << endl;
		cout << "请按相应的数字键进行选择:" << endl;
		char seqlist_seq_menu_key;
		cin >> seqlist_seq_menu_key;
		switch (seqlist_seq_menu_key)
		{
		case '1': word_frequency_statistics(); break;
		case '2': word_sort_menu(); break;
		case '3': return;
		default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause");
		}
	}

	return;
}

//基于链表的顺序查找菜单
void linklist_seq_menu()
{
	for (; 1;)
	{
		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---基于链表的顺序查找---" << endl;
		cout << "1.词频统计" << endl;
		cout << "2.单词查找" << endl;
		cout << "3.返回上一级" << endl;
		cout << "请按相应的数字键进行选择:" << endl;
		char linklist_seq_menu_key;
		cin >> linklist_seq_menu_key;
		switch (linklist_seq_menu_key)
		{
		case '1': word_frequency_statistics(); break;
		case '2': word_sort_menu(); break;
		case '3': return;
		default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause");
		}
	}

	return;
}

//单词查找菜单
void word_sort_menu()  
{
	for (; 1;)
	{
		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---单词查找---" << endl;
		cout << "请输入要查找的单词:";
		char word;
		cin >> word;
		if (1)//word_sort()
		{
			cout << "此单词的词频:" << endl;
			cout << "查找该单词所花费的时间:" << endl;
			cout << "平均查找长度:" << endl;
		}
		else
		{
			cout << "查找失败" << endl;
		}

		return;
	}
}

//折半查找菜单
void half_seqlist_menu()
{
	for (; 1;)
	{
		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---折半查找---" << endl;
		cout << "1.基于顺序表的折半查找" << endl;
		cout << "2.返回上一级" << endl;
		cout << "请按相应的数字键进行选择:" << endl;
		char list_half_sort_key;
		cin >> list_half_sort_key;
		switch (list_half_sort_key)
		{
		case '1': seqlist_half_sort(); break;
		case '2': return;
		default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause");
		}
	}

	return;
}

//基于顺序表的折半查找菜单
void seqlist_half_sort()
{
	for (; 1;)
	{
		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---基于顺序表的折半查找---" << endl;
		cout << "1.词频统计" << endl;
		cout << "2.单词查找" << endl;
		cout << "3.返回上一级" << endl;
		cout << "请按相应的数字键进行选择:" << endl;
		char seqlist_half_menu_key;
		cin >> seqlist_half_menu_key;
		switch (seqlist_half_menu_key)
		{
		case '1': word_frequency_statistics(); break;
		case '2': word_sort_menu(); break;
		case '3': return;
		default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause");
		}
	}
	return;
}

//二叉排序树相关函数
//二叉排序树菜单
void Bitree_menu()
{
	for (; 1;)
	{
		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---二叉排序树查找---" << endl;
		cout << "1.基于二叉排序树的顺序查找" << endl;
		cout << "2.返回上一级" << endl;
		cout << "请按相应的数字键进行选择:" << endl;
		char Bitree_menu_key;
		cin >> Bitree_menu_key;
		switch (Bitree_menu_key)
		{
		case '1': Bitree_seq_sort(); break;
		case '2': return;
		default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause");
		}
	}

	return;
}

//基于二叉排序树的顺序查找
void Bitree_seq_sort()
{
	for (; 1;)
	{
		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---基于顺序表的顺序查找---" << endl;
		cout << "1.词频统计" << endl;
		cout << "2.单词查找" << endl;
		cout << "3.返回上一级" << endl;
		cout << "请按相应的数字键进行选择:" << endl;
		char Bitree_seq_sort_key;
		cin >> Bitree_seq_sort_key;
		switch (Bitree_seq_sort_key)
		{
		case '1': word_frequency_statistics(); break;
		case '2': word_sort_menu(); break;
		case '3': return;
		default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause");
		}
	}

	return;
}

//哈希表相关函数
//哈希表菜单
void Hash_menu()
{
	for (; 1;)
	{
		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---哈希表---" << endl;
		cout << "1.基于开放地址法的哈希查找" << endl;
		cout << "2.基于链地址法的哈希查找" << endl;
		cout << "3.返回上一级" << endl;
		cout << "请按相应的数字键进行选择:" << endl;
		char Hash_menu_key;
		cin >> Hash_menu_key;
		switch (Hash_menu_key)
		{
		case '1': open_Hash_sort(); break;
		case '2': link_Hash_sort(); break;
		case '3': return;
		default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause");
		}
	}
	return;
}

//基于开放地址法的哈希查找
void open_Hash_sort()
{
	for (; 1;)
	{
		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---基于开放地址法的哈希查找---" << endl;
		cout << "1.词频统计" << endl;
		cout << "2.单词查找" << endl;
		cout << "3.返回上一级" << endl;
		cout << "请按相应的数字键进行选择:" << endl;
		char open_Hash_sort_key;
		cin >> open_Hash_sort_key;
		switch (open_Hash_sort_key)
		{
		case '1': word_frequency_statistics(); break;
		case '2': word_sort_menu(); break;
		case '3': return;
		default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause");
		}
	}

	return;
}

//基于链地址法的哈希查找
void link_Hash_sort()
{
	for (; 1;)
	{
		system("cls");
		cout << "*******************基于不同策略的英文单词的词频统计和检索系统*******************" << endl;
		cout << "---基于链地址法的哈希查找---" << endl;
		cout << "1.词频统计" << endl;
		cout << "2.单词查找" << endl;
		cout << "3.返回上一级" << endl;
		cout << "请按相应的数字键进行选择:" << endl;
		char link_Hash_sort_key;
		cin >> link_Hash_sort_key;
		switch (link_Hash_sort_key)
		{
		case '1': word_frequency_statistics(); break;
		case '2': word_sort_menu(); break;
		case '3': return;
		default: cout << "输入的不是有效符号,请重新输入" << endl; system("pause");
		}
	}

	return;
}

int main()
{
	major_menu();
	return 0;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

“翎羽”

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值