php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.07.2005, 16:26  
Gast
 
Beiträge: n/a
Standard Baumstruktur in PHP - ich krieg die Krise :D

Hallo zusammen

Ich programmiere derzeit eine Baum-Datenstruktur in PHP. Unter Java habe ich sowas schon unzählige Male gemacht, aber unter PHP stolpere ich über die Geschichte mit den Referenzen, und wäre deshalb ein wenig Hilfestellung sehr dankbar.

Ok, worum geht's? Ich habe eine Klasse Baum. Jede Instanz hat einen Wert, also eine Beschriftung, und eine Menge von Kindern, die ebenfalls Instanzen der Klasse Baum sind. Schema F aus der Informatik halt.

Ich habe neben dem Konstruktor, der einen Baumknoten anlegt und die Beschriftung festlegt, noch eine Methode zum hinzufügen von Kindern, und eine zum rekursiven anzeigen eines Knotens und seiner Kinder.

PHP-Code:
<?php

class Baum {
    
    var 
$wert;        //Beschriftung des Knotens    
    
var $kinder;    //Array mit Kindern

    //Konstruktor
    
function baum($wert) {
        
$this->wert $wert;
        
$this->kinder = array();
    }
    
    
//Kind hinzufügen
    
function addKind(&$kind) {
        
$kinder[] =& $kind;
    }
    
    
//Knoten eingerückt anzeigen, Kinder rekursiv anzeigen
    
function zeige($einrueck 0) {
        
        for (
$i 0$i $einrueck$i++)
            echo 
'-';
        
        echo 
$this->wert.'
'
;
        
        foreach(
$kinder as $kind)
            
$kind->zeige($einrueck 2);
            
    }
}

//Beispieldaten

$a =& new Baum('a');
$b =& new Baum('b');
$c =& new Baum('c');
$d =& new Baum('d');
$e =& new Baum('e');

$a->addKind(&$b);
$a->addKind(&$c);
$b->addKind(&$d);
$b->addKind(&$e);

$a->zeige();

echo 
'<pre>';
print_r($a);
echo 
'</pre>';

?>
Problem: Das Array $kinder will einfach nicht die Verweise auf die Kinder korrekt abspeichern, wie die Ausgabe zeigt:

Code:
a

baum Object
(
    [wert] => a
    [kinder] => Array
        (
        )

)
Es wird nur der erste Knoten (die Wurzel) angezeigt. Und print_r zeigt, dass das Kinder-Array dieses Knotens auch leer ist. Irgendwie verzweifle ich an der Geschichte mit den Referenzen.

Die korrekte Ausgabe müsste so sein:
Code:
a
--b
----d
----e
--c
Hat jemand eine Idee, wie obiger Code verändert werden müsste, damit er korrekt funktioniert. Ich jedenfalls bin mit meinem Latein am Ende.

EDIT:
PHP Version 4.
Suchfunktion liefert nur Ergebnisse bezgl. Baumstrukturen in Datenbanken oder Navigationsmenüs, aber nix über eine "echte" Datenstruktur.
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.07.2005, 18:03  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

Mach mal aus $kinder $this->kinder in deiner Klasse, dann sollte das zumindest schonmal funktionieren mit dem Speichern!?
MrNiceGuy ist offline   Mit Zitat antworten
Alt 26.07.2005, 18:13  
Gast
 
Beiträge: n/a
Standard

Na, da hab ich aber sauber geschlampt. Der Fehler ist auch noch beim anzeigen gewesen. So ist das halt, wenn Java-Programmierer Klassen in PHP basteln .

Nun funktioniert jedenfalls alles, und ich sage dankeschön .
  Mit Zitat antworten
Alt 26.07.2005, 18:51  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

übrigens:

PHP-Code:
 for ($i 0$i $einrueck$i++)
          echo 
'-'

echo 
str_repeat('-',$einrueck); 
axo ist offline   Mit Zitat antworten
Alt 26.07.2005, 18:57  
Gast
 
Beiträge: n/a
Standard

Auchn guter Tipp, danke.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Krieg kein Objekt zurück auf includeter Seite NONNNNN PHP Tipps 2008 5 28.03.2008 19:25
Baumstruktur -> alle unterpunkte rekursiv mit einem query Papst Datenbanken 3 02.01.2008 23:01
SELECT SUM.... krieg die summe nicht ausgegeben aircrash PHP Tipps 2008 2 12.09.2007 17:41
Baumstruktur die man drehen kann aktionkuba Datenbanken 1 07.04.2006 16:44
Baumstruktur anzeigen PHP-Fortgeschrittene 13 31.03.2006 21:37
[Erledigt] Baumstruktur (Parent) Berechnungen PHP-Fortgeschrittene 6 31.03.2006 14:45
Baumstruktur (ich weiß...nervt) PHP Tipps 2006 3 14.03.2006 13:41
Navigation / Baumstruktur Marc PHP Tipps 2007 6 12.11.2005 17:45
Baumstruktur in Datenbank speichern PHP-Fortgeschrittene 2 28.06.2005 11:37
[Erledigt] Kategorien in Baumstruktur PHP Tipps 2005 11 08.02.2005 22:24
Baumstruktur mit PHP programmieren! PHP Tipps 2005 2 10.01.2005 19:56
baumstruktur konsti Datenbanken 0 27.09.2004 17:58
Baumstruktur HTML, Usability und Barrierefreiheit 4 09.08.2004 14:03
Woher krieg ich PHP? PHP Tipps 2004 2 31.07.2004 20:11
Ordner lesen --> Baumstruktur --> Problem PHP Tipps 2004 0 30.06.2004 17:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php baum datenstruktur, beschriftung von einem baum 5 klasse, wie programmiere ich ein forum mit baumstruktur, php baumstruktur, baumstrukturen php programmieren, klasse baumstruktur, kinder von baumstruktur, einruecken baumstruktur php, array baumstruktur, baumstruktur in array, php array baumstruktur

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:03 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.