|
Informatyka UJ forum Rocznik 2005 - czyli najlepsze forum w sieci
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
r4ku
żul
Dołączył: 09 Lut 2006
Posty: 722
Przeczytał: 0 tematów
Skąd: klikash? :D
|
Wysłany: Nie 3:30, 07 Sty 2007 Temat postu: SetTree - grupa dra Kozika |
|
|
mam problem: czy ktos moglby mi powiedziec jak to cudo ma wygladac?
czy maja byc 3 funkcje getIterator? osobne dla pre,post i inorder? czy moze jedna zwaracjaca odpowiedni iterator w zaleznosci od parametru?
i o co chodzi z randomizacja wyjscia (albo wejscia nie bardzo pamietam)?
|
|
Powrót do góry |
|
|
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
cheater_
Orajt:)
Dołączył: 28 Lut 2006
Posty: 1022
Przeczytał: 0 tematów
|
Wysłany: Nie 5:18, 07 Sty 2007 Temat postu: |
|
|
Z tego co wiem, to chyba mają być 3 osobne. A randomizacja nie miała być przypadkiem przy wstawianiu do drzewa (losowo idziemy w prawo lub lewo aż dojdziemy do wolnego miejsca)? Bo nie wiem gdzie możnyby coś innego zrandomizować :P
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Roxel
pijak
Dołączył: 06 Kwi 2006
Posty: 249
Przeczytał: 0 tematów
Skąd: Pszczyna
|
Wysłany: Nie 11:21, 07 Sty 2007 Temat postu: |
|
|
Ja mam to zrobione jakos tak:
Kod: | #include "Set.h"
#include "Tree.h"
template <class T>
class TreeSet : public P2::Set<T> {
private:
// ...
public:
TreeSet();
~TreeSet();
bool contains(T &el);
void insert(T &el) throw (P2::AlreadyInSetException);
void remove(T &el) throw (P2::NoSuchElementException);
int size();
class InorderIterator;
class PreorderIterator;
class PostorderIterator;
typename P2::Set<T>::Iterator * getIterator(); // u mnie zwraca InorderIterator, nie mozna tego wywalic z powodu dziedziczenia
InorderIterator * getInorderIterator();
PreorderIterator * getPreorderIterator();
PostorderIterator * getPostorderIterator();
};
template <class T>
class TreeSet<T>::InorderIterator : public P2::Set<T>::Iterator {
private:
// ...
public:
InorderIterator(Tree<T> * tree);
~InorderIterator();
bool hasNext() throw (P2::InvalidStateException);
void next() throw (P2::NoNextElementException, P2::InvalidStateException);
T current() throw (P2::InvalidStateException);
};
// pozostale dwa iteratory identycznie
|
A o zadnej randomizacji nie slyszalem :shock:
Mam zwykle drzewo binarne z cormena.
Powodzenia r4ku :)
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
r4ku
żul
Dołączył: 09 Lut 2006
Posty: 722
Przeczytał: 0 tematów
Skąd: klikash? :D
|
Wysłany: Nie 13:16, 07 Sty 2007 Temat postu: |
|
|
dzieki za pomoc
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
oinopion
żul
Dołączył: 28 Lis 2005
Posty: 858
Przeczytał: 0 tematów
Skąd: Kraków
|
Wysłany: Nie 14:29, 07 Sty 2007 Temat postu: |
|
|
Randomizacja jest przy usuwaniu: wybierasz, w którym poddrzewie będziesz szukał tego elementu, który zastąpi usuwany w drzewie.
Itereatory mają być trzy. Funkcja je zwracająca nie była precyzowana, można zrobić trzy funkcje jak Roxel i ja, albo jedną parametryzowaną np. jakimś enumem.
BTW A czy termin treeset'a nie był ustalony na koniec listopada? ]:->
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
cheater_
Orajt:)
Dołączył: 28 Lut 2006
Posty: 1022
Przeczytał: 0 tematów
|
Wysłany: Nie 14:48, 07 Sty 2007 Temat postu: |
|
|
oinopion napisał: | Randomizacja jest przy usuwaniu: wybierasz, w którym poddrzewie będziesz szukał tego elementu, który zastąpi usuwany w drzewie. | to w takim razie jak masz zrobione wstawianie? Na jakiej podstawie decydujesz czy szukając wolnego miejsca iść w prawo czy w lewo?
oinopion napisał: | BTW A czy termin treeset'a nie był ustalony na koniec listopada? ]:-> | eeeeetam :P
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
oinopion
żul
Dołączył: 28 Lis 2005
Posty: 858
Przeczytał: 0 tematów
Skąd: Kraków
|
Wysłany: Nie 15:45, 07 Sty 2007 Temat postu: |
|
|
Randomizacja usuwania nie zmienia własności drzewa binarnego: zawsze na lewo mam mniejsze, na prawo mam większe [równych nie ma, bo to zbiór] wierzchołki.
Jeśli usuwam wierzchołek u, to na jego miejsce mogę wstawić:
-> największy z mniejszych [na lewo] od u: bo jest większy od wszystkich pozostałych mniejszych [na lewo] od u, a mniejszy od wszystkich większych [na prawo] od u;
-> najmniejszy z większych [na prawo] od u: bo jest mniejszy od wyszstkich pozostałych większych [na prawo] od u, a większy od wyszstkich mniejszych [na lewo] od u;
Największy z mniejszych znajduje się w jeden-na-lewo-do-końca-w-prawo wierzchołku, a najmniejszy z większych znajduje się w jeden-na-prawo-do-końca-w-lewo wierzchołku :P
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
cheater_
Orajt:)
Dołączył: 28 Lut 2006
Posty: 1022
Przeczytał: 0 tematów
|
Wysłany: Nie 18:34, 07 Sty 2007 Temat postu: |
|
|
Ej, zaraz zaraz, jak ty chcesz porównywac wierzchołki, skoro to jest template do którego można wrzucić jakąkolwiek klasę, której obiekty niekoniecznie muszą być porównywalne??
I dlatego właśnie uważam, że pomysł robienia uniwersalnego setu na drzewie jest pomysłem z dupy, bo w takim układzie lista jest w ch** szybsza. :?
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
exeman
Mistrz grilla
Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów
Skąd: znienacka
|
Wysłany: Nie 19:00, 07 Sty 2007 Temat postu: |
|
|
Ja tez to jeszcze mam do zakodzenia. Z dupy to jest i do dupy.
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
oinopion
żul
Dołączył: 28 Lis 2005
Posty: 858
Przeczytał: 0 tematów
Skąd: Kraków
|
Wysłany: Nie 22:29, 07 Sty 2007 Temat postu: |
|
|
cheater_ napisał: | Ej, zaraz zaraz, jak ty chcesz porównywac wierzchołki, skoro to jest template do którego można wrzucić jakąkolwiek klasę, której obiekty niekoniecznie muszą być porównywalne?? |
Jeśli nie przeładujesz operatora porównania, to wtedy wywali błąd przy kompilacji. Tylko kto wie jaki? [link widoczny dla zalogowanych]
Niestety, nie można tak jak w dżawie określić wymagań co do typu. Trzeba po prostu uważać i tyle. C++ w założeniach ma, że piszący nie jest idiotą [tzn. nie jest idiotoodporny].
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
cheater_
Orajt:)
Dołączył: 28 Lut 2006
Posty: 1022
Przeczytał: 0 tematów
|
Wysłany: Pon 0:08, 08 Sty 2007 Temat postu: |
|
|
Eee, to jest maniana :P Nie można takich rzeczy pisać, set to set - ma działać dla wszystkiego, użytkownik nie musi wiedzieć co jest w środku. Dlatego podtrzymuję moją tezę o byciu z dupy tego zadania :P
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
exeman
Mistrz grilla
Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów
Skąd: znienacka
|
Wysłany: Śro 0:37, 10 Sty 2007 Temat postu: |
|
|
Co bylo na dzisiejszych zajeciach? Jak wyglada sparwa projektow - jaki termin? Mowil cos o tych zadaniach malych z zajec do kiedy trzeba oddac?
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
hansu
Nieomylny Admin
Dołączył: 17 Lis 2005
Posty: 1990
Przeczytał: 0 tematów
Skąd: przychodzimy? Czym jestesmy? Dokad zmierzamy?
|
Wysłany: Śro 2:24, 10 Sty 2007 Temat postu: |
|
|
Projekty do ostatnich zajec trzeba przyniesc, nie mowil nic o terminach oddawania malych zadan.
BTW nienawidze swiata i chce zeby przestal istniec, wymorduje wszystkich ludzi. Milego dnia.
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
cheater_
Orajt:)
Dołączył: 28 Lut 2006
Posty: 1022
Przeczytał: 0 tematów
|
Wysłany: Śro 4:40, 10 Sty 2007 Temat postu: |
|
|
Ja dziś dopiero skończyłem TreeSeta (ale jak zajebiście :P ), a jeszcze ta sakramenka Java... ech madafaka
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
dzendras
Germański oprawca
Dołączył: 07 Mar 2006
Posty: 1326
Przeczytał: 0 tematów
Skąd: Chorzów
|
Wysłany: Śro 10:00, 10 Sty 2007 Temat postu: |
|
|
hansu napisał: | BTW nienawidze swiata i chce zeby przestal istniec, wymorduje wszystkich ludzi. Milego dnia. | Tylko oszczędź gołębie!
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
exeman
Mistrz grilla
Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów
Skąd: znienacka
|
Wysłany: Śro 2:50, 17 Sty 2007 Temat postu: |
|
|
Jak realizujecie wedrowanie post pre i inorder z danego konkretnego elementu? Jakie to mniej wiecej na to sa algorytmy bo mi to jakos nie idzie. :>
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
oinopion
żul
Dołączył: 28 Lis 2005
Posty: 858
Przeczytał: 0 tematów
Skąd: Kraków
|
Wysłany: Śro 2:56, 17 Sty 2007 Temat postu: |
|
|
Użyj parenta i zbadaj, jakie są możliwości.
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
cheater_
Orajt:)
Dołączył: 28 Lut 2006
Posty: 1022
Przeczytał: 0 tematów
|
Wysłany: Śro 13:46, 17 Sty 2007 Temat postu: |
|
|
Ja nie miałem ochoty się z tym chrzanić i zrobiłem to brutalem - przeglądam drzewo danym orderem i wywalam następny po szukanym :P Wydajność jest co prawda żadna, ale kto by się tym przejmował :P
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
exeman
Mistrz grilla
Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów
Skąd: znienacka
|
Wysłany: Śro 16:19, 17 Sty 2007 Temat postu: |
|
|
Jakie to wszystko jest poj$$$@$#@.
Inordera mam tak:
1. Jesli istnieje prawy to zwroc prawy, w przeciwnym wypadku
2. cofaj sie tak dlugo az nie bedzie wychodzi prawy i wtedy zwroc pierwszy mozliwy prawy
Nie dziala.
Preordera mam tak:
1. Zwroc lewy jesli istnieje, a jesli nie to prawy jesli istnieje, a jesli nie to
2. Cofaj sie tak dlugo az wyjdziesz z prawego ogona
3. Cofaj sie tak dlugo az bedzie istnial prawy i wybierz go.
Nie da sie tego prosciej zrobic? :/
|
|
Powrót do góry |
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|