Reklama: Twoja konkurencja już Cię wyprzedziła SPRAWDŹ JAK

Stwórz profil

Musisz wpisać swoje imię
Musisz wpisać swoje nazwisko
Musisz wpisać poprawny e-mail
Musisz wpisać hasło (min. 8 znaków)
Musisz zaakceptować regulamin

Piotr Trychta Student,
Politechnika
Rzeszowska im.
Ignacego
Łukasiewicza

Temat: drzewo wskaźnik

znalazłem taką klasę
http://svn.chrisgilmer.net/viewvc.cgi/project/python/g...

na początku jest:

class node():

def __init__(self, key = None, value = None):
#--- Describe the
self.parent = None
self.left = None
self.right = None
self.key = key
self.value = value

I nie rozumiem co mam wstawić za value, rozumiem że np w C++ nie było by tego pola, zamiast niego można by użyć wskaźnika do tego elementu, ale co z tym polem zrobić w Pythonie?
9.10.2011, 11:49

Łukasz K. Artysta Programista

Temat: drzewo wskaźnik

Piotr Trychta:

I nie rozumiem co mam wstawić za value, rozumiem że np w C++ nie

Nic nie rozumiesz.
było by tego pola, zamiast niego można by użyć wskaźnika do

???
tego elementu, ale co z tym polem zrobić w Pythonie?

Zaszalejmy i spróbujmy wstawić tam wartość węzła.
9.10.2011, 12:16

Piotr Trychta Student,
Politechnika
Rzeszowska im.
Ignacego
Łukasiewicza

Temat: drzewo wskaźnik

self.left i self.right powinny wskazywać na potomków, self.parent na rodzica,
wartość węzła to self.key,
self.value to coś jak wskaźnik, chybaPiotr Trychta edytował(a) ten post dnia 09.10.11 o godzinie 12:46
9.10.2011, 12:46

Łukasz K. Artysta Programista

Temat: drzewo wskaźnik

Piotr Trychta:
self.left i self.right powinny wskazywać na potomków, self.parent na rodzica,
wartość węzła to self.key,
self.value to coś jak wskaźnik, chyba

Czemu wg Ciebie, coś co się nazywa "klucz" jest wartością, a coś co się nazywa "wartość" - wskaźnikiem?

Key to key, value to value. Key jest unikalnym identyfikatorem. Wartość nie jest unikalna.Łukasz K. edytował(a) ten post dnia 09.10.11 o godzinie 13:13
9.10.2011, 13:00

Łukasz K. Artysta Programista

Temat: drzewo wskaźnik

Inna sprawa, że Twoje wątpliwości są jak najbardziej uzasadnione, bo key wydaje się bezpośrednio powiązany z value, bez przełożenia jednak tego w momencie wstawiania wartości.

Masz gdzieś przykład użycia tej klasy? Może jest np. tak, że do value przypisywany jest string/char, a key ustala jego wagę i tym samym sortuje wg wybranego przez Ciebie porządku?Łukasz K. edytował(a) ten post dnia 09.10.11 o godzinie 13:18
9.10.2011, 13:14

Piotr Trychta Student,
Politechnika
Rzeszowska im.
Ignacego
Łukasiewicza

Temat: drzewo wskaźnik

nie mam przykładu użycia.
9.10.2011, 13:38

Łukasz K. Artysta Programista

Temat: drzewo wskaźnik

Potraktuj więc "value" tak jak mówię:
- key ustala porządek
- value ustala konkretną wartość/obiekt/strukturę uporządkowaną za pomocą korespondującego klucza
9.10.2011, 15:25

Łukasz K. Artysta Programista

Temat: drzewo wskaźnik

http://wiki.python.org/moin/HowTo/Sorting - to powinno również pomóc. Obiekt na liście to value, powiązany jest z nim klucz, za pomocą ktorego odbywa się sortowanie.

// EDIT: skasuję to, bo sam się zamotałem ;)Łukasz K. edytował(a) ten post dnia 09.10.11 o godzinie 15:47
9.10.2011, 15:26

Stanisław P. Software designer

Temat: drzewo wskaźnik

Wszystko jest referencją w pythonie, więc możesz tam wrzucić... co chcesz. Twoje value właśnie. Tak jak i w przypadku wskaźnika w c++

Czyli zrób sobie np. noda z `node(1,2)` i masz noda z key=1, value=2Stanisław P. edytował(a) ten post dnia 09.10.11 o godzinie 22:29
9.10.2011, 22:28

Marcin W. Systems Engineer,
Google Ireland

Temat: drzewo wskaźnik

Głowy bym nie dał, ale key jest chyba po to, żeby interfejs tej klasy odpowiadał interfejsowi dictionary data type. W przeciwnym razie nie widzę potrzeby dodawania ekstra klucza do binary search tree skoro wszystkie porównania następują pomiędzy wartościami trzymanych w węzłach elementów (czyli value).
10.10.2011, 00:25



Wyślij zaproszenie do