Piotr Trychta

Piotr Trychta Programista .NET

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?

konto usunięte

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.
Piotr Trychta

Piotr Trychta Programista .NET

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

konto usunięte

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

konto usunięte

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
Piotr Trychta

Piotr Trychta Programista .NET

Temat: drzewo wskaźnik

nie mam przykładu użycia.

konto usunięte

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

konto usunięte

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
Stanisław P.

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

konto usunięte

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).

Następna dyskusja:

Drzewo genealogiczne




Wyślij zaproszenie do