/**************************************************************************************************************
给你一堆英文单词,找出出现次数最多的,输出这个单词,并输出出现的次数。
思路:
hash离散数据,进行查询即可。(转化为数字时)
1.首先将每个字符串转化为一个数字。
2.把离散后的结果存入hashnode[]数组中。(初始化头结点全部为空,且头结点不存内容,
只是判断离散后是否有这个结果)
3.插入+查询操作
若该结果出现过,则与结点内容想比较,相同则该结点单词数目加1。否则查找以此数字为离散结果的下一个结点
(离散结果相同)。
没出现过:开辟新结点,插入到以此数字为离散结果的单链表中,单词数目设为1,字符串复制至结点中。
4.在插入过程中不断比较,找出最大的单词数目,并记录。(maxcount,answer[11])。
代码如下:
***************************************************************************************************************/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
#define MAX 20000
#define MOST_FREQUENCY 25
int maxcount = 0;
char answer[MOST_FREQUENCY];
struct Node
{
int num; //结点数目
char str[MOST_FREQUENCY]; //结点数组
Node *next; //下一个结点
};
Node hashnode[MAX];
void init() //初始化数组
{
for(int i = 0; i < MAX; ++i)
hashnode
找出出现次数最多的单词并输出,并输出出现的次数
最新推荐文章于 2023-03-21 15:07:35 发布