| 
<?php
// require_once './src/btree.php';
 // require_once './src/tree.php';
 // require_once './src/node.php';
 // require_once './src/nullnode.php';
 // require_once './src/binarynode.php';
 
 require_once('./Autoloader_src.php');
 highlight_string('<?php
 $btree= new Btree(new BinaryNode(4));
 echo \'<pre>\';
 
 
 $btree->getRoot()
 ->addChildren(array(\'left\'=>new notnullnode(\'son\')))
 ->getLeftChild()
 ->addChildren(
 array(
 \'left\'=>new notnullnode(\'grandson\'),
 \'right\'=>new notnullnode(\'c16\')
 )
 )
 ->getParent()
 ->replaceChild(new notnullnode(\'brotherofson\'),\'right\')
 ->getRightChild()
 ->addChildren(
 array(
 \'left\'=>new notnullnode(\'grandson1\'),
 \'right\'=>new notnullnode(\'c17\')
 )
 )
 ->swapChildren()
 ->getParent()
 ->swapChildren()
 ->getLeftChild()
 ->getLeftChild()
 ->addChildren(
 array(
 \'left\'=>new notnullnode(\'doublegrandson\'),
 \'right\'=>new notnullnode(\'c18\')
 )
 );
 
 
 var_dump(count($btree));//return the number of true node
 var_dump($btree->toArray());//return a representative array of a tree;
 
 
 ?>');
 $btree= new Btree(new BinaryNode(4));
 echo '<pre>';
 
 
 $btree->getRoot()
 ->addChildren(array('left'=>new notnullnode('son')))
 ->getLeftChild()
 ->addChildren(
 array(
 'left'=>new notnullnode('grandson'),
 'right'=>new notnullnode('c16')
 )
 )
 ->getParent()
 ->replaceChild(new notnullnode('brotherofson'),'right')
 ->getRightChild()
 ->addChildren(
 array(
 'left'=>new notnullnode('grandson1'),
 'right'=>new notnullnode('c17')
 )
 )
 ->swapChildren()
 ->getParent()
 ->swapChildren()
 ->getLeftChild()
 ->getLeftChild()
 ->addChildren(
 array(
 'left'=>new notnullnode('doublegrandson'),
 'right'=>new notnullnode('c18')
 )
 );
 
 
 var_dump(count($btree));//return the number of true node
 var_dump($btree->toArray());//return a representative array of a tree;
 
 
 highlight_string('<?php /*can use square bracket to progressively access the tree like an array*/
 print_r($btree->getRoot()[\'left\'][\'lEft\'][\'rigHt\']);
 print_r($btree[\'top\'][\'left\'][\'lEft\'][\'left\']);
 $btree->getRoot()[\'left\'][\'lEft\'][\'left\'][\'value\']=\'c19\';
 echo $btree[\'top\'][\'left\'][\'lEft\'][\'left\'][\'parentId\'].\'<br>\';//same as:
 echo $btree[\'root\'][\'left\'][\'lEft\'][\'left\'][\'dad\'].\'<br>\';
 ?>');
 /**/
 
 print_r($btree->getRoot()['left']['lEft']['rigHt']);
 print_r($btree['top']['left']['lEft']['left']);
 $btree->getRoot()['left']['lEft']['left']['value']='c19';
 echo $btree['top']['left']['lEft']['left']['parentId'].'<br>';
 echo $btree['root']['left']['lEft']['left']['dad'].'<br>';
 
 
 highlight_string('<?php
 print_r($btree->getRoot()->getChildren()[\'left\']->getChildren()[\'left\']->getGrandPa());//same as
 
 print_r($btree->getRoot()->getGrandSons()[\'left\'][\'left\']->getGrandPa());
 
 ?>');
 
 
 print_r($btree->getRoot()->getChildren()['left']->getChildren()['left']->getGrandPa());
 
 print_r($btree->getRoot()->getGrandSons()['left']['left']->getGrandPa());
 
 // var_dump(eval('return '.$btree->export(true).';'));
 // var_dump(isset($btree->getRoot()['left']));
 // unset($btree->getRoot()['left']);
 // var_dump(isset($btree->getRoot()['left']));
 highlight_string('<?php
 var_dump(isset($btree->getRoot()[\'left\'][\'children\']));
 var_dump($btree->getRoot()[\'left\'][\'left\'][\'uncle\'][\'brother\']);
 
 ?>');
 
 var_dump(isset($btree->getRoot()['left']['children']));
 var_dump($btree->getRoot()['left']['left']['uncle']['brother']);
 
 highlight_string('<?php
 $x=new Stemnode(\'tada\');
 $x->addchild($y=new stemnode(1));
 $x->addchild(new stemnode(1));
 $x->addchild(new stemnode(1));
 $y->addchild(new stemnode(1));
 $y[0]->addchild($nt=new notnullnode(6));
 var_dump($x[0][0][\'parentId\']);
 
 var_dump(eval(\'return \'.$x->export(true).\';\'));
 
 var_dump($t=new Tree($x));
 $nt->addChildren(array(\'left\'=>new BinaryNode(\'fortestpurpose\')));
 var_dump($t[\'top\'][0][0][0][\'left\']);
 
 echo count($btree);
 echo \'<br>\';
 echo count($t);
 var_dump($t[\'top\'][\'grandsons\']);
 echo \'</pre>\';
 
 foreach($t[\'top\'] as $child){
 echo $child.\'<br>\';
 
 }
 $t[\'top\']->rewind();
 $t[\'top\']->next();
 echo \'<br>\';
 echo \'<br>\';
 echo \'<br>\';
 
 var_dump($t[\'top\']->prev());
 
 ?>');
 
 
 $x=new Stemnode('tada');
 $x->addchild($y=new stemnode(1));
 $x->addchild(new stemnode(1));
 $x->addchild(new stemnode(1));
 $y->addchild(new stemnode(1));
 $y[0]->addchild($nt=new notnullnode(6));
 var_dump($x[0][0]['parentId']);
 
 var_dump(eval('return '.$x->export(true).';'));
 
 var_dump($t=new Tree($x));
 $nt->addChildren(array('left'=>new BinaryNode('fortestpurpose')));
 var_dump($t['top'][0][0][0]['left']);
 
 echo count($btree);
 echo '<br>';
 echo count($t);
 var_dump($t['top']['grandsons']);
 echo '</pre>';
 
 foreach($t['top'] as $child){
 echo $child.'<br>';
 
 }
 $t['top']->rewind();
 $t['top']->next();
 echo '<br>';
 echo '<br>';
 echo '<br>';
 
 var_dump($t['top']->prev());
 ?>
 
 
 |