Forum Informatyka UJ forum Strona Główna Informatyka UJ forum
Rocznik 2005 - czyli najlepsze forum w sieci
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Zadanie K - Adelson-Velsky & Landis
Idź do strony Poprzedni  1, 2, 3, 4  Następny
 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Algorytmy i Struktury Danych
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

PostWysł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 profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysł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 profil autora
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 :]

PostWysł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 profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysł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 profil autora
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

PostWysł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 profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysł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 profil autora
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

PostWysł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 profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysł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 profil autora
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

PostWysł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 profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysł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 profil autora
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

PostWysł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 profil autora
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

PostWysł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 profil autora
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

PostWysł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 profil autora
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

PostWysł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 profil autora
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

PostWysł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 profil autora
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?

PostWysł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 profil autora
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

PostWysł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 profil autora
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

PostWysł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 profil autora
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?

PostWysł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 profil autora
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

PostWysł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 profil autora
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?

PostWysł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 profil autora
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

PostWysłany: Pon 22:15, 24 Kwi 2006    Temat postu:

@Ewka: Słuchaj wujka kap00cha jak radzi :lol:
Powrót do góry
Zobacz profil autora
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

PostWysłany: Pon 22:28, 24 Kwi 2006    Temat postu:

heheheheh
no może macie racje:)
Powrót do góry
Zobacz profil autora
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 :]

PostWysł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 profil autora
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?

PostWysł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
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Algorytmy i Struktury Danych Wszystkie czasy w strefie EET (Europa)
Idź do strony Poprzedni  1, 2, 3, 4  Następny
Strona 3 z 4

 
Skocz do:  
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
Regulamin