Zdravím všechny, potřeboval bych pomoct s jedním příkladem se kterým si nevím rady. Mám udělat binární strom pomocí ukazatelů, jehož strukturu uložím do souboru a potom ze souboru zase vytvořím strukturu toho stromu (serializace a deserializace stromu) + ověřím, že ta struktura ze souboru je vytvořena. Jak serializace, tak deserializace fungují, ale bylo mi řečeno, že mám jinak pracovat se souborem - nepoužívat fprintf,fopen,fclose,fscanf (předpokládám, že to mám udělat přes ifstream,ofstream??). Mohl by mi někdo pomoct, jak to tedy mám udělat?
Serializaci jsem řešil pomocí přímého průchodu stromem, EMPTY -1 jsou potom prázdné vrcholy (rodiče nad nimi jsou listy stromu)
Je to psane proceduralnim pristupem. Vyhodit iostream, using a new, tak je z toho typicke reseni v C. Byt tebou, tak to ani neprepisuju, proste zacnu novou variantou za pouziti trid.
Potrebujes prinejmensim metody: insert, find. Serializace se normalne dela pomoci iteratoru, ale tezko rici, jestli to das dohromady.
Nahlásit jako SPAM
IP: 212.47.3.–
Program vždy dělá to co naprogramujete, ne to co chcete...
je tu ale drobný problém, ty nepíšeš jaký strom to je ono jich je mnoho a některé stromy je lepší převézt z paměťového modelu na deterministický stavový model (DSM) a teprve pak serializovat protože to stejně jinak nejde. DSM je sice redundantní struktura ke stromu, ale je vede k efektivnímu kodu.
.... ano serializace (uložení na disk) lze provést při procházení stromu (což je jednoduché) pak ho smažeš a při deserializaci ho zase vytvoříš.
ifstream is("in.txt");
if (!is.is_open())
chyba
if (!(is >> val))
chyba
is.close();
ofstream os("out.txt");
if (!os.is_open())
chyba
if (!(os << val << " "))
chyba
os.close()