-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchaining.cpp
More file actions
67 lines (59 loc) · 1.45 KB
/
chaining.cpp
File metadata and controls
67 lines (59 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <vector>
#include "chainnode.cpp"
#include <string>
#include <fstream>
using namespace std;
class chaining
{
public:
vector<chainNode*>* linkedListVector;
chaining()
{
linkedListVector = new vector<chainNode*>(1000);
}
int hashFunction(std::string theString)
{
int sum = 0;
for (int i = 0; i < theString.length(); i++)
{
sum += theString[i];
}
return sum % 1000;
}
void insert(std::string data)
{
int index = hashFunction(data);
if(linkedListVector->at(index) == 0)
{
linkedListVector->at(index) = new chainNode(data,0);
return;
}
chainNode* ptr = linkedListVector->at(hashFunction(data));
while(ptr != 0)
{
if(ptr->next == 0)
{
ptr->next = new chainNode(data,0);
break;
}
ptr = ptr->next;
}
}
void print()
{
ofstream myfile;
myfile.open ("chainingoutput.txt");
for(int i = 0; i < linkedListVector->size(); i++)
{
myfile<< i << "\n";
chainNode* ptr = linkedListVector->at(i);
while(ptr != 0)
{
myfile<< ptr->data<<" ";
ptr = ptr->next;
}
}
myfile.close();
}
};