Article View: pl.comp.lang.python
Article #27120Re: B-drzewo w Pythonie
From: Łukasz Rekucki
Date: Sun, 03 Jan 2010 02:34
Date: Sun, 03 Jan 2010 02:34
31 lines
2410 bytes
2410 bytes
On Jan 3, 2:23 am, wodzik <wod...@noreply.com> wrote:
> Witam
>
> W ramach nauki Pythona postanowiłem ze zaimplementuje sobie b-drzewo w
> Pythonie. Wszystko fajnie, wstawianie zajmuje jakieś 100 linii bez
> komentarzy (2-3 razy mniej niż w c++), ale elementy nie są wstawione po
> kolei. Nie wiem czy źle coś zaimplementowałem, czy zrobiłem gdzieś jakiś
> głupi błąd, czy może nie do końca rozumiem działanie Pythona. Link do
> kodu:http://www.wklej.org/id/254477/
>
> Pozdrawiam wodzik
Najłatwiej to sprawdzić debuggerem. Twój błąd (możliwe, że nie jedyny)
znajduję się w tu:
brat.wskazniki = tmp.wskazniki[self.MAX + 1:]
tmp.wskazniki = tmp.wskazniki[:self.MAX + 1]
Węzły które były na liście "wskazniki" pamiętają rodzica swojego
rodzica, więc oprócz przypisania bratu części wskaźników, powinieneś
zrobić jeszcze, np.:
for item in brat.wskazniki:
item.rodzic = brat
PS. Ogólnie twój kod nie jest zbyt pythoniczny (sposób użycia for ..
in, nazwy metod), a miejscami dość nieoptymalny, np:
self.tablica.append(liczba)
self.tablica.sort()
Technical Details
Message-ID:
<a99ed17d-e589-4ea7-87bd-7f551f284852@u41g2000yqe.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!feeds.phibee-telecom.net!feeder.news-service.com!postnews.google.com!u41g2000yqe.googlegroups.com!not-for-mailReferences:
<hhorn8$7ta$1@atlantis.news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!feeds.phibee-telecom.net!feeder.news-service.com!postnews.google.com!u41g2000yqe.googlegroups.com!not-for-mail From: Łukasz Rekucki <lrekucki@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: B-drzewo w Pythonie Date: Sat, 2 Jan 2010 18:34:49 -0800 (PST) Organization: http://groups.google.com Lines: 40 Message-ID: <a99ed17d-e589-4ea7-87bd-7f551f284852@u41g2000yqe.googlegroups.com> References: <hhorn8$7ta$1@atlantis.news.neostrada.pl> NNTP-Posting-Host: 212.76.62.207 Mime-Version: 1.0 X-Trace: posting.google.com 1262486089 30469 127.0.0.1 (3 Jan 2010 02:34:49 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sun, 3 Jan 2010 02:34:49 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: u41g2000yqe.googlegroups.com; posting-host=212.76.62.207; posting-account=5fpXZwoAAADF-CUdCuJ-FpYxG8__-wRx User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.43 Safari/532.5,gzip(gfe),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit