Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: C++ (auch C++0x und C++11) ::  Danke! (War: Sortieren mit binärem Baum)     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Mark007
Unregistrierter




Beitrag Mark007 Unregistrierter 13:26:57 26.10.2009   Titel:   Danke! (War: Sortieren mit binärem Baum)            Zitieren

Vielen Dank für die Hilfe! Es funktioniert jetzt tatsächlich :-) Ich glaube die Abfrage this==NULL tut sogar genau das, was ich von ihr erwartete :D Jedenfalls funktioniert die folgende insert Funktion einwandfrei:
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
template <typename object>
bst<object> *bst<object>::insert(object v)
{
    if (this == NULL) {
      bst<object>* node = new bst<object>(v);
      return node;
    }

    if (v < value) this->left = left->insert(v);
    else this->right = right->insert(v);
    return this;
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
template <typename object>
bst<object> *bst<object>::insert(object v)
{
if (this == NULL) {
bst<object>* node = new bst<object>(v);
return node;
}

if (v < value) this->left = left->insert(v);
else this->right = right->insert(v);
return this;
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
template <typename object>
bst<object> *bst<object>::insert(object v)
{
    if (this == NULL) {
      bst<object>* node = new bst<object>(v);
      return node;
    }

    if (v < value) this->left = left->insert(v);
    else this->right = right->insert(v);
    return this;
}

Und aufgerufen wird das ganze mit:
C/C++ Code:
    bst<int>* tree = new bst<int>(vec[0]);
    for (int i=1; i<vec.size(); i++)
    {
        tree->insert(vec[i]);
    }
C/C++ Code:
bst<int>* tree = new bst<int>(vec[0]);
for (int i=1; i<vec.size(); i++)
{
tree->insert(vec[i]);
}
C/C++ Code:
    bst<int>* tree = new bst<int>(vec[0]);
    for (int i=1; i<vec.size(); i++)
    {
        tree->insert(vec[i]);
    }


Zuletzt bearbeitet von pumuckl am 15:12:39 26.10.2009, insgesamt 1-mal bearbeitet
Mark007
Unregistrierter




Beitrag Mark007 Unregistrierter 13:31:28 26.10.2009   Titel:              Zitieren

Sorry, falscher Ort. Kann man diesen Post bitte an folgende location verschicken:http://www.c-plusplus.de/forum/viewtopic-var-t-is-252764.html? Danke!
DocShoe
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.04.2008
Beiträge: 1483
Beitrag DocShoe Mitglied 14:23:31 26.10.2009   Titel:              Zitieren

Wenn this==NULL ist dann ist irgendwo etwas völlig faul...
unskilled
Mitglied

Benutzerprofil
Anmeldungsdatum: 06.07.2007
Beiträge: 3652
Beitrag unskilled Mitglied 14:29:53 26.10.2009   Titel:              Zitieren

Wir hatten das doch vor 2 Tagen oder so schon mal...
this kann nicht NULL sein... vll wenn man es mit aller gewalt versucht - aber wahrscheinlich auch eher nicht...

btw: n1 threadtitel... nicht.

bb

_________________
Keiner kann besser nix als ich - Tagedieb mit Lächeln im Gesicht :o)
Schon gut!
Unregistrierter




Beitrag Schon gut! Unregistrierter 14:32:36 26.10.2009   Titel:   Wir sind ja freundlich...            Zitieren

Bitte!
Sebastian Pizer
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.08.2009
Beiträge: 603
Beitrag Sebastian Pizer Mitglied 14:33:20 26.10.2009   Titel:   Re: Danke!            Zitieren

Es funktioniert bei Dir vielleicht, ist aber verboten und führt offiziell zu undefiniertem Verhalten. Das ist jetzt übrigens das dritte Mal, dass ich das sage.

zeiger->funktion(); ist laut C++ ISO Standard äquivalent zu (*zeiger).funktion();, siehe 5.2.5 ("Class member access") Abschnitt 3. Das Dereferenzieren von Nullzeigern aber logischerweise verboten. Dein Hack geht spätestens dann schief, falls die Funktion eine virtuelle ist -- oder aber schon bei einem anderen Compiler, der etwas pingeliger ist.

Gruß,
SP
C/C++ Forum :: C++ (auch C++0x und C++11) ::  Danke! (War: Sortieren mit binärem Baum)   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.