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,布布扣,bubuko.com

时间: 2024-10-01 11:38:47

C++程序代写实现HashSet class的相关文章

java图形图像SVG转PPM程序代写 qq:928900200

Background Many image file formats encode image data as a 2-D matrix or raster of pixel colors. The amount of available color information is fixed by the image's width and height of its resolution. If the resolution is too small, you will have proble

二叉树程序代写

1.系统说明  输入一个正整数N,然后随机产生N个整数,创建一个二叉树(左子树≤父节点≤右子树).  使用Windows程序设计,在窗体的客户区自动地画出创建二叉树的过程,并动画演示中序遍历.2.系统要求  自动计算每个节点的坐标,节点圆的半径可设置,节点间的距离可设置,左右子树的角度可设置:  二叉树的大小可能超出窗体客户区的大小,因此需设立窗体的水平与垂直的滚动条:  动画演示遍历时,标出节点的顺序.二叉树程序代写,布布扣,bubuko.com

基于j2ee的程序代写MVC架构

人力资源管理系统 完成系统静态页面设计,页面数量不少于10个,页面需用CSS进行美化,并为需要验证的信息利用JavaScript提供客户端验证.要求至少包含部门信息及部门内员工信息的添加.修改.删除和查询以及员工培训信息维护等功能页. 35 页面内容饱满.页面数量超过15个 设计数据库表部门信息表.员工信息表及员工培训信息表至少三张表,数据库信息设计合理.基于第一次作业所做静态页面使用JSP+JavaBean实现部门信息及部门内员工信息的添加.修改.删除和查询以及员工培训信息维护等功能. 40

C语言程序代写(qq:928900200)

1cs3157 – Advanced ProgrammingSummer 2014, Project 1, 150 pointsJune 17, 2014Follow these step-by-step instructions. This homework must be submitted electronically bySunday night July 6th, 11pm. Please start early, so we can help if you get stuck.In

c++程序代写(qq:928900200)

1. Both main memory and secondary storage are types of memory. Describe the difference between the two.2. What is the difference between system software and application software?3. Why must programs written in a high-level language be translated into

程序设计实践C++ 程序代写(QQ 928900200)

程序设计实践 采用C++作为编程语言. 设计开发一个"学生信息"管理系统.该系统模拟数据库管理系统(DBMS)的功能,为用户提供数据存储.查找的能力. 该系统存储的学生信息包括: 学号.姓名.性别.语文成绩.数学成绩 如:1001.张三.男.80.90 系统支持用户通过输入命令,实现与系统的交互.系统支持的命令包括: 1)新增数据命令:向系统中新增数据.命令语法格式如下: ADD(数据) ---其中,ADD为命令名: ---括号中,"数据"为用户输入的新数据,包含描

基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写

基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写 专业程序代写服务(QQ:928900200) 随着社会的进步.服务行业的服务水平不断发展与提高,宾馆.酒店.旅游等服务行业的信息量和工作量日益变大,而传统的人工管理方式已经远远不能满足现在旅游的服务方式.传统的旅游方式经分析其有诸多的缺陷,存在数据维护效率低下,不易保管,容易丢失和出错.同时查询也不方便,劳动力成本过高导致的旅游资源信息不方便,也在一定程度上导致了对各种信息反应缓慢,容易丧失商机.为了弥补上述缺陷,便于开展旅游预订工

board game作业代写、代写board game程序、C程序代写

board game作业代写.代写board game程序.C程序代写Watch Your Back! is a fast-paced combat board game. You control a team of ruthless roguesengaged in a fight to the death against your enemies. Within the confines of a checkerboardthere is no rulebook and no referee

java代写,java程序代写,代写java,java编程代写

java代写,java程序代写,代写java,java编程代写 我们5人Team都是来自于国内一线互联网公司的高级工程师,毕业于顶尖CS院校,已经接编程代写达2年时间,阵容详细介绍见此 学生来自于美.澳.加.英.中国含中国香港.中国澳门.中国台湾,接单数量近1000单 这里有我们的接单截图记录,可以看到我们的高效.诚信.靠谱:代写成交截图 联系方式 加之前务必了解价格详情:价格详情 有详细价格范围 防止浪费时间 精力有限,仅接学生作业,不接社会需求!不接社会需求! 不接[深度学习].不接[图像处