|
Informatyka UJ forum Rocznik 2005 - czyli najlepsze forum w sieci
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Rogal
Zjeb z kaszanką
Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów
Skąd: koło podbiegunowe
|
Wysłany: Śro 22:18, 19 Kwi 2006 Temat postu: |
|
|
Imho dla kogoś kto dobrze programuje i robił takie AVL-e wcześniej takie zadanie jest do zrobienia w czasie 2-5 godzin. De facto można to spokojnie napisać na ok. 400 linii, więc nie jest to nic AŻ tak strasznego.
Natomiast jak ktoś robi to pierwszy raz, ma spore problemy z napisaniem kilku linijek bez błędu (to o mnie), gubi się we wskaźnikach (też o mnie :twisted: ) to może siedzieć 3 dni od rana do nocy i wciąż gdzieś będą jakieś błędy.
|
|
Powrót do góry |
|
|
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysłany: Śro 23:00, 19 Kwi 2006 Temat postu: |
|
|
O ile dobrze pamiętam, to nasz ćwiczeniowiec mówił, że sobie musiał przypomnieć przed zajęciami drzewa AVL, bo ostatni raz miał z nimi styczność na I roku :P
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Madras
Omylny Admin
Dołączył: 09 Lis 2005
Posty: 2021
Przeczytał: 0 tematów
Skąd: Z Pokoju :]
|
Wysłany: Śro 23:17, 19 Kwi 2006 Temat postu: |
|
|
Tak, ale po przypomnieniu i tak długi okres przerwy nie przeszkodziłby mu w dosyć sprawnej implementacji.
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysłany: Śro 23:22, 19 Kwi 2006 Temat postu: |
|
|
sprawdziłem w rankingu i jeszcze go nie zrobił :P a stara się robić wszystkie ;]
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
chlebek
alkoholik
Dołączył: 04 Lut 2006
Posty: 556
Przeczytał: 0 tematów
Skąd: Siedlce\Kraków
|
Wysłany: Sob 15:33, 22 Kwi 2006 Temat postu: |
|
|
Czy moglby ktos zapodac jakis sposob liczenia balancow, po rotacji. Robie Insert z wykladu, ale jakos źle dziala, chcialem zrobic samemu, ale nie wiem jak sprytnie pozniej poustawiac balancy w drzewie, czy ktos robil z wykladu ?
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysłany: Sob 15:45, 22 Kwi 2006 Temat postu: |
|
|
A nie można było poszukać w tym temacie?
jagm napisał: | i kilka uwag:
1. na forum tcs [link widoczny dla zalogowanych]. w [link widoczny dla zalogowanych] są wzory pozwalające obliczyć balans po rotacji
2. głupi błąd, na który się złapałem - jak mamy przy usuwaniu bal=0 w dziecku, to po rotacji wysokość drzewa się nie zmienia, więc dalej nie musimy sprawdzać, czy drzewo jest zrównoważone ;] ktoś chyba o tym wspominał, ale tak na wszelki wypadek przypominam, żebyście się nie musieli tyle nad tym głowić co ja :) |
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
chlebek
alkoholik
Dołączył: 04 Lut 2006
Posty: 556
Przeczytał: 0 tematów
Skąd: Siedlce\Kraków
|
Wysłany: Sob 16:07, 22 Kwi 2006 Temat postu: |
|
|
jagm napisał: | A nie można było poszukać w tym temacie?
jagm napisał: | i kilka uwag:
1. na forum tcs [link widoczny dla zalogowanych]. w [link widoczny dla zalogowanych] są wzory pozwalające obliczyć balans po rotacji
2. głupi błąd, na który się złapałem - jak mamy przy usuwaniu bal=0 w dziecku, to po rotacji wysokość drzewa się nie zmienia, więc dalej nie musimy sprawdzać, czy drzewo jest zrównoważone ;] ktoś chyba o tym wspominał, ale tak na wszelki wypadek przypominam, żebyście się nie musieli tyle nad tym głowić co ja :) |
|
wolabym, jakby mi ktos swoimi slowami opisal, kto to robil :?
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysłany: Sob 16:27, 22 Kwi 2006 Temat postu: |
|
|
Na przykładzie pojedynczej rotacji w lewo (reszta podobnie na podstawie reszty wzorów)
Przepięcia są tak jak w notatkach z wykładu, czyli na początek
u <- right(w)
teraz pod zmienne pomocnicze sobie podtrawiam balans z u i w.
balans(u)<-old_u_balans-1+min(old_w_balans,0)
balans(w)<-old_w_balans-1+max(old_u_balans,0)
teraz przepięcie wskaźnika na rodzica:
jeśli lewe poddrzewo u nie jest puste, to left(u)^.parent<-w
następnie
u^.parent<-w^.parent
w^.parent<-u
i później dalsze przepięcia jak na wykładzie
right(w)<-left(u)
left(u)<-w
w<-u
Jedyna różnica polega na tym, że balans jest obliczany dla któregoś z balansu równego 2/-2. A na wykładzie robiliśmy w ten sposób, że nie zmienialiśmy tam na 2/-2 tylko sprawdzaliśmy odpowiednie warunki. Więc to trzeba zmienić, albo we wzorze z tą jedynką pokombinowac.
Rotacja w prawo podobnie, a podwójne znów z wykładów można + wzory na balans + przepinanie wskaźnika na rodzica
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
chlebek
alkoholik
Dołączył: 04 Lut 2006
Posty: 556
Przeczytał: 0 tematów
Skąd: Siedlce\Kraków
|
Wysłany: Sob 20:35, 22 Kwi 2006 Temat postu: |
|
|
Tzn. ze do tego algorytmu Insert z wykladu nalezy pozmieniac Rotacje wedlug wzoru powyzej, czy tam jest juz wszysko, dlaczego w notatkach nic o tym nie ma ??
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysłany: Sob 20:48, 22 Kwi 2006 Temat postu: |
|
|
W notatkach masz tylko ogólną ideę. Każdy balans od ostatniego wystąpienia balansu niezerowego aż do miejsca, w którym wstawiasz, zmieniasz o jeden w zależności od tego, czy element wstawiany jest większy czy mniejszy. I ponieważ zaczynałeś sprawdzać od niezerowego, to tam albo dostaniesz -2/2 albo 0. Jeśli 0, to nic nie zmieniasz, a jeśli -2/2, to wykonujesz którąś z rotacji. I w zależności od tego jaki to rodzaj rotacji, ustawiasz balans dla rodzica i dziecka z tych wzorów.
A to, co wcześniej podałem jest zmienione pod mój kod, bo ja robiłem jeszcze ze wskaźnikiem do rodzica, stąd te dodatkowe zamiany. A wzorów rzeczywiście na wykładzie nie było.
|
|
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: Sob 21:23, 22 Kwi 2006 Temat postu: |
|
|
Zrobilem, nareszcie :)
Porada dla tych co nie zrobili: najpierw zrozumiec, a potem pisac. Ja chcialem isc na latwizne, bez zaglebiania sie w temat przepisywalem, kombinowalem i stracilem jakos 40 godzin. Co prawda deleta oparlem na ksiazce Wirtha, ale insterta napisalem sam :D
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Fen
zielony żul
Dołączył: 22 Lut 2006
Posty: 946
Przeczytał: 0 tematów
Skąd: Bochnia
|
Wysłany: Nie 1:36, 23 Kwi 2006 Temat postu: |
|
|
ufff... mi także K przeszło! co prawda będę miał -1/3 pk, ale i tak nie mogę narzekać :)
strony z tutorialami o AVL, które gdzieś były podane na forum TSC + zrozumienie działania(szkoda, że nie do końca ;/) + pascal = OKej dla K na Sprawdzarce :)
|
|
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: Pon 6:07, 24 Kwi 2006 Temat postu: |
|
|
Nawet mi się udało! I to w jakim czasie:1 dzień i 1 noc przed kompem. Nie ma po jak piękny wschód słońca :)
Najciekawsze, że na moim programie gronostaj się wykłada:
Kod: | big 3.414 s / 10 s Blad gronostaja. |
[edit] Chyba coś z pamięcią, exemanie, bo jak zmniejszyłem zużycie (packed record), to się poprawiło.
[edit2] Jednak nie: popowrocie do 'bez packed' też dało ok, więc to musiałbyć jakiś randomowy błąd (mikropęknięcie ;) na płycie głównej albo coś )
|
|
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: Pon 11:13, 24 Kwi 2006 Temat postu: |
|
|
"Blad gronostaja" to komunikat, gdy nie uda sie wczytac wzorcowych .out'ow, nie mam pojecia czemu cos takiego wyskoczylo. Kierujac sie zasada, ze blad jednorazowy nie jest bledem, mysle, ze mozna to poprostu olac :P
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Ewka
pijak
Dołączył: 15 Mar 2006
Posty: 44
Przeczytał: 0 tematów
Skąd: Rzeszów/Kraków- Ruczaj
|
Wysłany: Pon 18:10, 24 Kwi 2006 Temat postu: |
|
|
exemanie powiedz mi prosze
co jest nie tak z deletem w Wircie
bo chciałabym zaoszczędzić 40 godzin :) ??
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
kap00ch
Mistrz grilla
Dołączył: 09 Mar 2006
Posty: 1840
Przeczytał: 0 tematów
Skąd: ja sie tu wzialem?
|
Wysłany: Pon 19:12, 24 Kwi 2006 Temat postu: |
|
|
wg mnie nic nie jest zle :P bo po zeznaniach exemana sam przegladnalem wirta i nie znalazlem nic co by wzbudzilo moje podejrzenia...;]
|
|
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: Pon 19:46, 24 Kwi 2006 Temat postu: |
|
|
Ewka:
1. zamiast bal1:=p; ma byc bal1:=p1; oraz analogicznie gdziestam pozniej.
2. zamiast skrajnie prawego przy usuwaniu brany jest skrajnie lewy (albo na odwrot).
Chyba tyle :)
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Ewka
pijak
Dołączył: 15 Mar 2006
Posty: 44
Przeczytał: 0 tematów
Skąd: Rzeszów/Kraków- Ruczaj
|
Wysłany: Pon 20:49, 24 Kwi 2006 Temat postu: |
|
|
co do pkt pierwszego to faktycznie te dwie procedury nie byłyby symetryczne :)
oj szukałabym tego baaaaaaaardzo długo! dzieki wielkie
a mógłbyś jeszcze bliżej wyjaśnić pkt 2 ??? :)
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
kap00ch
Mistrz grilla
Dołączył: 09 Mar 2006
Posty: 1840
Przeczytał: 0 tematów
Skąd: ja sie tu wzialem?
|
Wysłany: Pon 21:49, 24 Kwi 2006 Temat postu: |
|
|
pkt2 dotyczy samego usuwania a dokladnie podmiany usuwanego elemtnu z jakims koncowym liscie. Wirt ma wersje z usuwaniem skrajnego prawego czyli najwiekszego z mniejszych (inaczej od odnalezionego liscia idziemy jeden w lewo i do konca w prawo). Natomiast my mamy zrobic wer. z wykladu czyli skrajnie lewy - najmniejszy z wiekszych...czyli idziemy jeden w prawo i do konca w lewo.
tak wiec jedyne co trzeba zrobic to odbic symetrycznie procedure us z wirta i potem juz pod sam koniec prog. wywolywac ja nie dla lewego lecz prawego dzieciaka...aczkolwiek nie pochwalam przeklepywania z wirta a tym bardziej az takiego pomagania...ale mam cos dzisiaj samarytanski dzionek :P i na prawde prosze cie Ewka :] : zrob to sama :P
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Ewka
pijak
Dołączył: 15 Mar 2006
Posty: 44
Przeczytał: 0 tematów
Skąd: Rzeszów/Kraków- Ruczaj
|
Wysłany: Pon 22:05, 24 Kwi 2006 Temat postu: |
|
|
kurde no wiem, masz rację że sama powinnam zrobić,
ale mi się tak strasznie nie chce :(
i do tego gorączke mam
ale inserta sama zrobiłam więc nie jest tak źle :D
wogóle to tak się śpieszyłam, żeby zdążyć na drugi termin,
a podobno drugi termin minął dzisiaj rano
a byłam pewna, że jest do środy :(
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
kap00ch
Mistrz grilla
Dołączył: 09 Mar 2006
Posty: 1840
Przeczytał: 0 tematów
Skąd: ja sie tu wzialem?
|
Wysłany: Pon 22:09, 24 Kwi 2006 Temat postu: |
|
|
no to jak masz goraczke i nic cie nie goni to sugeruje isc spac :>
|
|
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: Pon 22:15, 24 Kwi 2006 Temat postu: |
|
|
@Ewka: Słuchaj wujka kap00cha jak radzi :lol:
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Ewka
pijak
Dołączył: 15 Mar 2006
Posty: 44
Przeczytał: 0 tematów
Skąd: Rzeszów/Kraków- Ruczaj
|
Wysłany: Pon 22:28, 24 Kwi 2006 Temat postu: |
|
|
heheheheh
no może macie racje:)
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Madras
Omylny Admin
Dołączył: 09 Lis 2005
Posty: 2021
Przeczytał: 0 tematów
Skąd: Z Pokoju :]
|
Wysłany: Pon 22:30, 24 Kwi 2006 Temat postu: |
|
|
Masz coś zrobić dzisiaj - zrób jutro ;].
Stosując tą zasadę mam -2/3 za K ;].
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
kap00ch
Mistrz grilla
Dołączył: 09 Mar 2006
Posty: 1840
Przeczytał: 0 tematów
Skąd: ja sie tu wzialem?
|
Wysłany: Pon 22:41, 24 Kwi 2006 Temat postu: |
|
|
madras - pomysl ze ta zasada wydluza twoj zywot na tym ziemskim padole...np czarnoskorzy mieszkancy wysp afrykanskich uwazaja ze kierujac sie ta zasada moga zostac niesmiertelni, a raczej wieczni gdyz uplyw swojego zycia mierza iloscia pracy jaka wykonaja:P
|
|
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
|