//============================================================================
// Name : hashtab.cpp
// Author : me
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
class HashTable1{
private:
string* t;
int capacity;
int ht_size;
public:
HashTable1(int c); //konstruktor tworzący pustą tablicę o pojemności c
int hashF(string s); //funkcja haszująca dla ciągu s
bool insert(string s); //wstawienie ciągu s, zwraca true jeśli wstawienie nie wywołało kolizji, fals jeśli kolozja nastąpiła
int search(string s); //wyszukanie ciągu s, zwraca indeks lub -1 jeśli
friend ostream& operator<<(ostream& out, HashTable1& ht);
};
HashTable1::HashTable1(int c)
{
capacity=c;
t = new string[c];
for(int i = 0; i < capacity; i++)
{
t[i]="0";
}
ht_size = 0;
}
int HashTable1::hashF(string s){
int i, sum;
for (sum=0, i=0; i < s.length(); i++)
sum += s[i];
return sum % capacity;
}
bool HashTable1::insert(string s){
int indeks;
indeks = hashF(s);
if(t[indeks]=="0")
{
t[indeks]=s;
ht_size++;
return true;
}
else{
for(int i = indeks+1; i<capacity; i++)
{
if(t[i]=="0")
{
t[i]=s;
ht_size++;
return false;
}
}
for( int i =0; i< indeks; i++)
{
if(t[i]=="0")
{
t[i]=s;
ht_size++;
return false;
}
}
return false;
}
}
ostream& operator<<(ostream& out, HashTable1& ht){
for(int i = 0; i < ht.capacity;i++)
{
out<<ht.t[i]<<" , ";
}
return out;
}
int main() {
HashTable1 obiektI(15);
obiektI.insert("Ela");
obiektI.insert("Ola");
obiektI.insert("Ala");
cout<<obiektI;
return 0;
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}