IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Serializace binárního stromu C++

Aktivity
Avatar
Nick01
Člen
Avatar
Nick01:2.5.2017 19:49

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,fclo­se,fscanf (předpokládám, že to mám udělat přes ifstream,ofstre­am??). Mohl by mi někdo pomoct, jak to tedy mám udělat (s ifstreamem a ofstreamem jsem nepracoval)?

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)

Kód: https://pastebin.com/PLU4nXQd

Děkuji za veškerou pomoc

 
Odpovědět
2.5.2017 19:49
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Nick01
Petr Nymsa:3.5.2017 8:38

Nejjednodušší bude si najet dokumentaci k ifstream http://www.cplusplus.com/…am/ifstream/ a ofstream http://www.cplusplus.com/…am/ofstream/.
Pak budeš konkrétněji hlavně potřebovat *.open() http://www.cplusplus.com/…stream/open/
Read - http://www.cplusplus.com/…stream/read/ a podobně Write - http://www.cplusplus.com/…tream/write/.

Budou se ti taky hodit metoddy jako Fail(), Good() pro zjištění chyb při čtení / zápisu

Nahoru Odpovědět
3.5.2017 8:38
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Nick01
Člen
Avatar
Nick01:3.5.2017 17:06

Díky moc zkusím se na to podívat.

 
Nahoru Odpovědět
3.5.2017 17:06
Avatar
Nick01
Člen
Avatar
Odpovídá na Nick01
Nick01:5.5.2017 18:44

Tak jsem se podíval na ifstream a ofstream a něco jsem sestavil pro serializaci, ale nefunguje to, jak bych chtěl. Potřeboval bych trochu pomoct, popostrčit. Předem děkuji.
Můj kód:
Tree.h - https://pastebin.com/rubAvY3h
Tree.cpp - https://pastebin.com/zwUn2SQa
main.cpp - https://pastebin.com/k1kVUpNN
Do souboru se v podstatě uložil pouze levý podstrom: 4;3;#;#; (výstup teď v souboru tree.txt)
Tohle mi píše kompilátor:

 
Nahoru Odpovědět
5.5.2017 18:44
Avatar
Nick01
Člen
Avatar
Nick01:5.5.2017 21:01

Špatně jsem uzavíral soubor při serializaci, problém vyřešen

 
Nahoru Odpovědět
5.5.2017 21:01
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.