C++程序代写实现HashSet class
C++程序代写实现HashSet class
专业程序代写(QQ:928900200)
Implement a HashSet class for elements of type string.
It has the following functions:
bool add(const string &)
bool contains(const string &) const
int size() const
In this exercise, you need to implement some of the above functions, as well as several internal functoins:
int find(const string & e) const
void resize(int capacity2)
bool contains(const string & e) const
Hint:
The function find(e) finds the first position starting from p=h%N, which is either empty or equal to e. That is, find(e) should look like the following:
int find(const string & e) const {
int p = hashIndex(e);
while (true) {
if (…) return p;
p = (p + 1) % capacity;
}
}
EXAMPLE INPUT
apple
orange
banana
apple
orange
apple
watermelonEXAMPLE OUTPUT
3
true
false
主程序
#include <iostream>
#include <string>
using namespace std;
//////////////////////////
// Interfaces
//
template <typename E>
class Set
{
public:
virtual bool add(const E &) = 0;
virtual bool contains(const E &) const = 0;
virtual int size() const = 0;
};
template <typename E>
class HashFunction
{
public:
virtual int getHashCode(const E & e) const = 0;
};
/////////////////////////
// hash-function
//
class StringHashFunction : public HashFunction<string>
{
public:
int getHashCode(const string & text) const {
int code = 0;
for (int i = 0; i < text.size(); ++ i) {
int code1 = text[i];
code1 = code1 « (i * 8 % 24);
code = code ^ code1;
}
return code;
}
};
/////////////////////////
// your class
//
class HashSet : public Set<string>
{
private:
const StringHashFunction hashFunction;
class Entry
{
public:
string element;
bool isInUse;
Entry() {
isInUse = false;
}
};
Entry * entries;
int capacity;
int count;
void initialize(int capacity2) {
count = 0;
capacity = capacity2;
entries = new Entry[capacity];
}
void assign(const HashSet & set2) {
count = set2.count;
capacity = set2.capacity;
entries = new Entry[capacity];
for (int i = 0; i < capacity; ++ i) {
entries[i] = set2.entries[i];
}
}
public:
HashSet() {
initialize(2);
}
~HashSet() {
delete [] entries;
}
HashSet(const HashSet & set2) {
assign(set2);
}
HashSet & operator = (const HashSet & set2) {
delete [] entries;
assign(set2);
return (*this);
}
private:
int hashIndex(const string & e) const {
int hashCode = hashFunction.getHashCode(e);
return hashCode % capacity;
}
int find(const string & e) const;
void resize(int capacity2);
public:
bool add(const string & e) {
int index = find(e);
if (entries[index].isInUse) {
return false;
}
entries[index].element = e;
entries[index].isInUse = true;
++ count;
if (count > capacity / 2) {
resize(capacity * 2);
}
return true;
}
bool contains(const string & e) const;
int size() const {
return count;
}
};
#include “source”
int main() {
HashSet set;
for (int i = 0; i < 5; ++ i) {
string text;
cin » text;
set.add(text);
}
cout « set.size() « endl;
for (int i = 0; i < 2; ++ i) {
string text;
cin » text;
if (set.contains(text)) {
cout « “true” « endl;
}
else {
cout « “false” « endl;
}
}
}
C++程序代写实现HashSet class的更多相关文章
- 如何鉴别程序抄袭c语言程序代写
如何鉴别程序抄袭:如何鉴别一份程序代码是抄袭另一份程序.输入:两个C语言源程序文件 输出:抄袭了多少?给出最相似的片段,判断是谁抄袭了谁? 提示:首先进行统一规范化排版,去掉无谓的空格.空行,然后比对 ...
- c编写程序完成m名旅客和n辆汽车的同步程序代写
jurassic公园有一个恐龙博物馆和一个公园,有m名旅客和n辆汽车,每辆汽车仅能允许承载一名旅客.旅客在博物馆参观一阵,然后排队乘坐旅行车.当一辆车可用时,他载入一名旅客,再绕花园行驶任意长的时间. ...
- 实验教学管理系统 c语言程序代写源码下载
问题描述:实验室基本业务活动包括:实验室.班级信息录入.查询与删除:实验室预定等.试设计一个实验教学管理系统,将上述业务活动借助计算机系统完成. 基本要求: 1.必须存储的信息 (1)实验室信息:编号 ...
- 模拟游客一天的生活与旅游java程序代写源码
在某个城市的商业区里,有一家首饰店,一家饭店,一家面馆,一家火锅店,一家银行,一家当铺 现在有一群来自四川的游客,一群陕西的游客,一群上海的游客,和以上各店家的工作人员在此区域里,请模拟他们一天的生活 ...
- 基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写
基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写 专业程序代写服务(QQ:928900200) 随着社会的进步.服务行业的服务水平不断发展与提高,宾馆.酒店.旅游等服务行业的信息量和工作 ...
- 程序代写, CS代写, 代码代写, CS编程代写, java代写, python代写, c++/c代写, R代写, 算法代写, web代写
互联网一线工程师程序代写 微信联系 当天完成 查看大牛简介特色: 学霸代写,按时交付,保证原创,7*24在线服务,可加急.用心代写/辅导/帮助客户CS作业. 客户反馈与评价 服务质量:保证honor ...
- CS代码代写, 程序代写, java代写, python代写, c/c++代写,csdaixie,daixie,作业代写,代写
互联网一线工程师程序代写 微信联系 当天完成特色: 互联网一线工程师 24-48小时完成.用心代写/辅导/帮助客户CS作业. 客户反馈与评价 服务质量:保证honor code,代码原创.参考课程sl ...
- C++代写,代写C++,C++程序代写,C++ assignment代写
C++代写,代写C++,C++程序代写 关于C++代写,我们的涉猎范围: C++数据结构.算法题目 C++操作系统os题目 C++网络编程networking题目 C++ Linux题目 C++ Wi ...
- 程序设计实践C++ 程序代写(QQ 928900200)
程序设计实践 采用C++作为编程语言. 设计开发一个“学生信息”管理系统.该系统模拟数据库管理系统(DBMS)的功能,为用户提供数据存储.查找的能力. 该系统存储的学生信息包括: 学号.姓名.性别.语 ...
随机推荐
- HDU 1394 Minimum Inversion Number (线段树 单点更新 求逆序数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 题意:给你一个n个数的序列,当中组成的数仅仅有0-n,我们能够进行这么一种操作:把第一个数移到最 ...
- 怎样在Android实现桌面清理内存简单Widget小控件
怎样在Android实现桌面清理内存简单Widget小控件 我们常常会看到类似于360.金山手机卫士一类的软件会带一个widget小控件,显示在桌面上,上面会显示现有内存大小,然后会带一个按键功能来一 ...
- TCP连接的建立(二)
被动打开 SYN cookies TCP协议开辟了一个比較大的内存空间请求连接队列来存储连接请求块,当SYN请求不断添加,请求连接数目到达上限时,会致使系统丢弃SYN连接请求.SYN cookies技 ...
- 英文版Ubuntu安装Fcitx输入法
在英文环境(LC_CTYPE=en_US.UTF-8)下安装,可按如下配置: 首先,执行 sudo apt-get install fcitx-pinyin im-switch 然后,执行 im-sw ...
- DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)
DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类) 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据 ...
- httpd的简单配置(转)
一般网站都采用httpd作web服务器提供web页面,本文主要介绍下几个httpd中常用的配置属性和配置方式,当然具体应用更具具体需求来定. 代理模块配置: 由于网页动态化,网页的生成基本代理到后端服 ...
- poj1836--Alignment(dp,最长上升子序列变形)
Alignment Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 13319 Accepted: 4282 Descri ...
- poj3311(状压dp)
题目连接:http://poj.org/problem?id=3311 题意:一个送披萨的,每次送外卖不超过10个地方,给你这些地方之间的时间,求送完外卖回到店里的总时间最小. 分析:跑一遍Floyd ...
- Nlog配置文件
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nl ...
- IIS设置允许下载.exe文件解决方法
最近很多客户使用IIS服务器,然后提示返现宝下载无法找到等无法下载的问题. 返现宝是.exe安装文件,部分服务器或主机可能无法下载. 第一.如果是自己服务器或VPS请按如下设置: 1.设置MIME,让 ...