Hallo, beetje vage topictitle maarja..
Ik ben dus bezig met een klasse om een 'boom' aan gegevens in op te slaan.
dit is de class:
Het is nog erg basic, en gaat er nu ook alleen nog maar om, om de boom goed op te bouwen.
Het toevoegen van Nodes lukt al wel, maar zodra ik een node ga toevoegen aan een zojuist toegevoegde node, dan is deze alleen in de laatste node te zien en niet in de hele boom.
bijvoorbeeld:
ik wil deze boom hebben
dat doe ik met deze code:
en als ik tree bekijk komt het er zo uit te zien:
nu mis ik dus test.1.1 en test.1.2 deze staan wel opgeslagen in $node1, maar ik wil dus dat het één grote boom wordt.
--> beetje lange inleiding, maar dan nu de vraag:
Waar maak ik de denkfout. Zit de klass niet goed inelkaar of maak ik de boom verkeerd aan? Alvast bedankt!
Ik ben dus bezig met een klasse om een 'boom' aan gegevens in op te slaan.
dit is de class:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <? class Tree { var $nodeID; var $name; var $children; function Tree($nodeID,$name) { $this->nodeID = $nodeID; $this->name = $name; $this->children = array(); } function addNode($nodeID, $name) { $this->children[$nodeID] = new Tree($nodeID, $name); return $this->children[$nodeID]; } } ?> |
Het is nog erg basic, en gaat er nu ook alleen nog maar om, om de boom goed op te bouwen.
Het toevoegen van Nodes lukt al wel, maar zodra ik een node ga toevoegen aan een zojuist toegevoegde node, dan is deze alleen in de laatste node te zien en niet in de hele boom.
bijvoorbeeld:
ik wil deze boom hebben
code:
1
2
3
4
5
| root
|-> test.1
|-> test.1.1
|-> test.1.2
|-> test.2 |
dat doe ik met deze code:
PHP:
1
2
3
4
5
6
7
8
| <? $tree = new Tree(0,"root"); $node1 = $tree->addNode(1,"test.1"); $node3 = $node1->addNode(3,"test.1.1"); $node4 = $node1->addNode(4,"test.1.2"); $node2 = $tree->addNode(2,"test.2"); ?> |
en als ik tree bekijk komt het er zo uit te zien:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| tree Object
(
[nodeID] => 0
[name] => root
[children] => Array
(
[1] => tree Object
(
[nodeID] => 1
[name] => test.1
[children] => Array ()
)
[2] => tree Object
(
[nodeID] => 2
[name] => test.2
[children] => Array ()
)
)
) |
nu mis ik dus test.1.1 en test.1.2 deze staan wel opgeslagen in $node1, maar ik wil dus dat het één grote boom wordt.
--> beetje lange inleiding, maar dan nu de vraag:
Waar maak ik de denkfout. Zit de klass niet goed inelkaar of maak ik de boom verkeerd aan? Alvast bedankt!
Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."