
oSZTÁLY
By: a guest on
May 5th, 2012 | syntax:
C++ | size: 2.10 KB | hits: 15 | expires: Never
#ifndef asd
#define asd
#include <math.h>
class BajVan {
public:
/// @param - nem használjuk semmire
BajVan(const char &string) {}
};
template<class T>
class Tabla
{
int hash_key;
T* tarolo;
int db;
/// @param mit - Hashelendő elem
///@return - Visszatér a hashelt adattal
int hash(T mit) ///Hash függvény
{
return (hash_key & (int)mit)/2;
}
public:
Tabla() ///Default konstruktor
{
tarolo=new T[1];
tarolo[0]=0;
db=0;
}
/// Kilistázza a tábla tartalmát.
void listaz()
{
int i;
for(i=0;i<=db;i++)
{
cout << i << ". " << tarolo[i] << endl;
}
}
/// Ha úgy adja a sors, kitörölhetjük vele a tábla tartalmát.
void clear()
{
for(int i=0;i<db;i++)
{
tarolo[i]=0;
}
}
///A hash key-t lehet vele beállítani, ami alapján a hash függvény működik
/// @param key - A kulcs.
void setKey(int key)
{
this->hash_key=key;
}
///Elemet lehet vele hozzáadni a táblához.
///@param elem - Az elhelyezendő adat.
void add(T elem)//hozzáadás
{
int hely = hash(elem);
int i;
if(db<hely)
{cout <<"a";
T* temp=new T[hely+1];
for(i=0;i<=hely+1;i++) temp[i]=0;
for(i=0;i<=db;i++)
{
temp[i]=tarolo[i];
}
delete[] tarolo;
//T* tarolo=new T[hely];
tarolo=temp;
tarolo[hely]=elem;
db=hely+1;
}
else
{cout <<"b";
int keres=0;
while(tarolo[hely+keres]!=0)
{
keres++;
//cout << "A hely foglalt, lejjebb kerult az elem!" << endl;
}
if(hely+keres>=db)
{cout <<"c";
T* temp=new T[hely+keres+1];
for(i=0;i<=hely+keres;i++) temp[i]=0;
for(i=0;i<=db;i++)
{
temp[i]=tarolo[i];
}
tarolo=temp;
db=hely+keres;
}
tarolo[hely+keres]=elem;
}
}
///Egy elemet lehet lekérdezni a tábla tetszőleges helyéről.
///@param szam - A hely indexe
T get(int szam)
{
return tarolo[szam];
}
/// Ugyanaz, mint a get függvény, csak operátorral megoldva.
///@param szam - A lekérdezendő index
int& operator[] (const int szam)
{
return tarolo[szam];
}
};
#endif