PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pointer in array?



emu
09-11-2004, 23:59
folgendes:

ich will ein spiel programmieren. dafür hab ich mir überlegt, ein mehrdimansionales array als baum zu nehmen. nun bin ich bei folgendem problem: am knoten x im baum soll ein weiterer knoten angefügt werden, dh: suche knoten x im baum, setze pointer darauf und füge am pointer den knoten x1 an. wie löse ich das in php?

msi
12-11-2004, 18:59
folgendes:

ich will ein spiel programmieren. dafür hab ich mir überlegt, ein mehrdimansionales array als baum zu nehmen. nun bin ich bei folgendem problem: am knoten x im baum soll ein weiterer knoten angefügt werden, dh: suche knoten x im baum, setze pointer darauf und füge am pointer den knoten x1 an. wie löse ich das in php?

was fürn spiel willst denn programmieren, wo man so was brauchen sollte?

sixfriends
14-11-2004, 14:34
Wenn du eine feste Anzahl an Kinderknoten pro Vaterknoten hast (z.B. jeder Knoten führt zu maximal 2 Kindern), dann würde auch ein eindimensionales Array reichen. Bsp.(3 Kinder):
http://cip.uni-trier.de/cweber/zeug/ex.png
[Wurzel | Kind1 | Kind2 | Kind3 | Kind1Kind1 | Kind1Kind2 | Kind1Kind3 | Kind2Kind1 ....]

--> Kinder von Knoten im Array an Stelle x = Stellen {3*x+1, 3*x+2,3*x+3}

Wenn die Anzahl variabel ist:
Hinzufügen per Knoten[knotennummerierung][] = array();

sixfriends

mehlvogel
15-11-2004, 06:40
Ein Baum als Datenstruktur brauch man relativ häufig ;)

Bei diesem Pointerkram bin ich allerdings überfragt. So weit ich weis gehen Pointer in PHP nicht. Du kannst aber mit Referenzen arbeiten, über den '&' Operator:



function blabla(&$ref) {
// Do some nasty things on the Reference
}


Das könnte dir evtl helfen.



$x = findNodeToInsert($tree);
InsertNode($x1, $tree[$x]);
// Wenn...
function InsertNode($newNode, &$where) { /* ... */ }