怎么解决?

wangzhouyu 2003-12-16 09:30:06
前天,老师出了一个题,是现写一个类String和一个Dictionary类,我在这里写出主要的函数来,
class String//具有字符串功能的类
{
public:
String();
String(char *s);
~String();
int hashCode();
int getLength() const;
char *getContent() const;
private:
char *str;
}
String::String()
{
int len=strlen(s);
str=new char[len+1];
strcpy(str,s);
}
int String::hashCode()//哈希码,返回前三个字符的ASCII值之和,如果字符串只有两个字符,就返回两个之和,只有一个就返回一个。
int String::getLength() const//返回字符串的长度。
char *String::getContent() const //返回字符串的内容。
class Dictionary//英汉字典的作用,
{
public:
Dictionary();
~Dictionary();
bool add(String,String);
bool modity(String,String);
String trans(String)
private:
String *en;//存放英文字符串
String *ch;//存放中文字符串
}
bool Dictionary::add(String s1,String s2)//将英文和他的汉文加入到字典中。
bool Dictionary::modity(String s1,String s2)//将英文和他的新汉文意思加入到字典中去替换掉原有的意思。
String Dictionary::trans(String s1)//输入英文,得到他的中文意思。
字典的存放有一定的规则,这跟String类中的哈希码有关,数组的前75的位置是根据英文的哈希码来除以75得到的余数来决定的。
如:字符串s1的哈希码计算出来为m值,n=m%75,则字符串应该存放在en[n]的位置(前提是此位置原为空,没有被占用),如果此处已经被占用了,则放在75~99的位置(顺序存放)。
我的问题主要是出现在判断位置是否被占用上,我怎么去判断这个位置上有无被占用。

...全文
88 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧