Hi,
ich habe 2 Klassen.
Klasse 1 "hash"
Klasse 2 "woerter"
Nun würde ich gerne den struct aus Klasse "hash" durch durch die Klasse "worter" ersetzen.
Ich würde es so machen:
Allerdings weiß ich nun nicht genau wie ich die Methode dh_insert abändern muss.
Wäre über ein paar tipps dankbar.
ich habe 2 Klassen.
Klasse 1 "hash"
Klasse 2 "woerter"
Nun würde ich gerne den struct aus Klasse "hash" durch durch die Klasse "worter" ersetzen.
Ich würde es so machen:
C++:
private:
//struct löschen
woerter a[79];
Allerdings weiß ich nun nicht genau wie ich die Methode dh_insert abändern muss.
C++:
class hash
{
private:
struct Element
{string key; //deutsche Wort
string info; //englische Wort
};
Element a[79];
public:
hash()
{
datei_auslesen();
}
//########################################################
~hash()
{
zurueck_schreiben();
}
//########################################################
int hash(string key) //Erste Hasfunktion
{int h = 0; // Hashcode
int i, l = key.length();
for (i = 0; i < l; i++) h = (int(key.at(i)) + h*127) % M;
return h;
}
//########################################################
int hash2(string key) //Zweite Hasfunktion (=Schrittweitenfunktion)
{int w = 0; // Schrittweite
int i, l = key.length();
for (i = 0; i < l; i++) w = (int(key.at(i)) + w*127) % (M - 1);
return w;
}
//########################################################
int dh_insert(string key, string info) //fuegt deutsch-engl. Wortpaar in Hastabelle ein
{
Element x;
x.key = key;
x.info = info;
int i = hash(x.key);
int c = hash2(x.key);
int last = (i + (M - 1)*c)%M;
while (a[i].key.length() != 0 && a[i].key != x.key && i != last) i = (i+c)%M;
if (a[i].key.length() == 0) // Satz einfuegen
{a[i].key = x.key;
a[i].info = x.info;
return 0; //Satz erfolgreich eingefuegt
}
if (a[i].key == x.key)
return 1; //Satz existiert schon
else return 2; //Tabelle voll; kein Einfuegen moeglich
}
...........
};
C++:
class woerter
{
private:
string key;
string info;
public:
woerter(string einkey = "", string eininfo = "")
: key(einkey),info(eininfo) {}
//########################################################
void set_key(string const& eingabe_name)
{
key=eingabe_name;
}
//########################################################
void set_x_info(string const& eingabe_info)
{
info=eingabe_info;
}
//########################################################
string const& get_key() const
{
return key;
}
//########################################################
string const& get_info() const
{
return info;
}
};
Wäre über ein paar tipps dankbar.
Zuletzt bearbeitet: