Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

dynamicky datovy objekt typu strom

6 views
Skip to first unread message

DooDeeToo

unread,
Nov 5, 2000, 3:00:00 AM11/5/00
to
Zdravím všetkých (ak ešte vôbec niekoho)

Mám za úlohu spraviť program pre %subj% a potreboval by som nejaké info, čo
to vlastne je (stačí link) - nepodarilo sa mi nájsť nič.

Zrejme ide o niečo podobné ako zásobník a zreťazený zoznam, ale na rozdiel
od týchto objektov u stromu neviem, aké funkcie to má mať. Asi bude nejaký
ten koreň stromu a ten bude mať ?N? vetví (nejde o binárny strom) a každá z
nich 0..M vetví ... a na konci bude nejaký údaj? No a čo s tým? Keď to tak
vezmem, vychádza mi to na také divné rôzne-mnoho-rozmerné pole, ale asi sa
na to zle pozerám.

Hm, niečo mi napadlo - žeby to niečo ako toto? (príklad):
koreň nech je Zem, tá má rôzne štáty, každý štát rôzne kraje, okresy,
mestá...
a funkcie napr. Zem.PridajMesto("Slovensko", "Trenčín", "Ilava", "Dubnica"),
príp. Zem.ZistiPocetObyvatelov("Slovensko", "Trnava")?
Lenže to by bolo príliš konkrétne a ja mám spraviť všeobecný objekt.

Vidno, že tápem v tme - stačí ma ozaj len nakopnúť správnym smerom - nejako
si neviem predstaviť, čo mám vlastne do toho objektu implementovať. Stačil
by mi snáď len zoznam funkcií tohto objeku - potom ma už osvieti ;-)

Vďaka za váš čas

___________________________________________________________________________
Dušan Zervan
e-mail: DooD...@pobox.sk
PGP key ID: 0x63E9395C


Oto Ciulis

unread,
Apr 5, 2001, 4:07:15 AM4/5/01
to
Mozno to bude nieco ako zretazeny zoznam (asi staci jednosmerny). Pole velmi
nepouzivat, treba pouzit dynamicky alokovane triedy. Napr :

class InLine
{int number;
InLine *Next;
/* Other datas */}

class Level
{int level;
InLine * First;
Level *Next;
void AddInLine (void);
void RemoveInLine (void);
int InLines;
/* Other datas */};

class Tree
{Level *First;
void AddLevel (void);
void RemoveLevel (void);

int Levels;
};

Teraz si uz len napis metody na dynamicku alokaciu objektov. Tree obsahuje
Level * First, tu je odkaz na prvy stupen stromu. Kazdy stupen (Level)
obsahuje odkaz na dalsi stupen (az do hlbky N). Ale kazdy Level ma aj odkaz
na prvu polozku (InLine), a kazka polozka ma odkaz na dalsiu polozku (v tom
istom stupni stromu).

Napr:

Tree.AddLevel ()
{Level *New = new Level, *Point=First; // Pozor na dynamiku,
nesmie byt staticky
for (;Point->Next==0;Point=Point->Next) ;; // Hladame posledny stupen
Point->Next=New;}

Priklad ber len ako ideu, nemusi byt spravny :).

Tree je vlastne taky manazer Levelov a kazdy Level je manazerom svojich
poloziek.

Snad som to spravne pochopil :)

Murphy

"DooDeeToo" <DooD...@pobox.sk> wrote in message
news:8u3v2g$3e7$1...@ern.kit.vslib.cz...
> Zdravím vąetkých (ak eąte vôbec niekoho)
>
> Mám za úlohu spravi» program pre %subj% a potreboval by som nejaké info,
čo
> to vlastne je (stačí link) - nepodarilo sa mi nájs» nič.
>
> Zrejme ide o niečo podobné ako zásobník a zre»azený zoznam, ale na rozdiel
> od týchto objektov u stromu neviem, aké funkcie to má ma». Asi bude nejaký
> ten koreň stromu a ten bude ma» ?N? vetví (nejde o binárny strom) a kaľdá


z
> nich 0..M vetví ... a na konci bude nejaký údaj? No a čo s tým? Keď to
tak
> vezmem, vychádza mi to na také divné rôzne-mnoho-rozmerné pole, ale asi sa
> na to zle pozerám.
>

> Hm, niečo mi napadlo - ľeby to niečo ako toto? (príklad):
> koreň nech je Zem, tá má rôzne ątáty, kaľdý ątát rôzne kraje, okresy,


> mestá...
> a funkcie napr. Zem.PridajMesto("Slovensko", "Trenčín", "Ilava",
"Dubnica"),
> príp. Zem.ZistiPocetObyvatelov("Slovensko", "Trnava")?

> Lenľe to by bolo prílią konkrétne a ja mám spravi» vąeobecný objekt.
>
> Vidno, ľe tápem v tme - stačí ma ozaj len nakopnú» správnym smerom -
nejako
> si neviem predstavi», čo mám vlastne do toho objektu implementova». Stačil
> by mi snáď len zoznam funkcií tohto objeku - potom ma uľ osvieti ;-)
>
> Vďaka za váą čas
>
>
___________________________________________________________________________
> Duąan Zervan

DooDeeToo

unread,
Apr 11, 2001, 11:52:37 AM4/11/01
to
No uz som to medzitym spravil - ale aj tak dakujem za ochotu
Robil som to dost podobne, ale trosku inac - spravil som B-strom a aplikoval
som ho na pocitanie vyskytu slov v texte (priebezne zaradoval abecedne)
Okrem toho sa ten strom vedel vykreslit (tak symbolicky samozrejme),
vyhladavat a odoberat zaznamy...

Dusan


"Oto Ciulis" <oo...@post.sk> wrote in message
news:9ajps0$l09$1...@news.telecom.sk...


> Mozno to bude nieco ako zretazeny zoznam (asi staci jednosmerny). Pole
velmi
> nepouzivat, treba pouzit dynamicky alokovane triedy. Napr :

> ...

0 new messages