myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Rekursion c++ (https://mygully.com/showthread.php?t=2134789)

ponchosi 07.10.10 10:04

Rekursion c++
 
Hi,
wie formatiere ich den Code denn richtig ?
Die cpp datei liegt vor, hab den Code auch direkt ausm Compiler kopiert, aber er wird hier immer wieder eingerückt ?!


Ich hab ein Programm geschrieben, dass alle möglichen Strukturen ausgibt, die man anhand von n - internen Knoten erzeugen kann.
Nur leider funktioniert dieses nicht, bzw tut nicht das, was es soll !

gosha16 07.10.10 10:46

Bitte verwende Code Tags und bring den Code in ein ordentliches Format.

ponchosi 07.10.10 20:15

Code:

#include <iostream>
#include <fstream>
using namespace std;
#include <stdlib.h>
#include <time.h>
#include <math.h>

typedef int kn_info ;

struct knoten
 {
  kn_info info;
  knoten * lnachf, * rnachf;
};

struct baum {
    knoten *wurzel;
    int anzknoten;
};


void baumaus(ofstream & ,baum );
void initialize(baum &);
unsigned long long int anz(int);
void aufbau(ofstream &,knoten *&,baum,int &, int,int);
void knot(ofstream &, const knoten *, int);

int main (){
    int n,m;
    baum b;

    initialize(b);
    ofstream datout;
    char datnameout[20];

    cout<<"Bitte geben Sie die Anzahl der Knoten ein ! \n";
    cin>>n;
    m = n;
    cout<<"Die Anzahl aller möglichen Strukturen ist gleich "<<anz(n)<<"\n";

    do{
        cout << "Namen fuer die Ausgabedatei eingeben: ";

        cin >> datnameout;

        datout.open(datnameout);

        if (datout.fail())

            cerr << "Datei \"" << datnameout
            << "\" kann nicht geoeffnet werden!! \n";
      } while (datout.fail());

      aufbau(datout,b.wurzel,b,b.anzknoten,n,m);



}

unsigned long long int anz(int n){
   

    if ((n == 0) || ( n == 1)) return 1;


    else {

        unsigned long long  int r=0;

        for (int i = 0;i < n;i++){
       
            r = r + anz(i) * anz((n-1-i));
    }

    return r;
    }
}


void aufbau(ofstream &datout,knoten *(&p),baum b,int &a,int n,int m){



  if (a == m) {
        baumaus(datout,b);
        p=NULL;
        a = a - 1 ;
        datout<<"\n\n";
     

    }

    if(n>0) {
        p = new knoten;
        p->lnachf = p->rnachf = NULL;
        p->info = n;
        a++;
        if(b.wurzel == NULL) b.wurzel = p;
    }

    else p = NULL;

    for (int i = 0; i <n; i ++){
        aufbau(datout,p->rnachf,b,a,i,m);
        aufbau(datout,p->lnachf,b,a,(n-1-i),m);
       
    }



   

}


void initialize(baum &b)
//  ==========                                //
// Initialisiere den Baum "vb" ordnungsgemaess. //
{ b.wurzel = NULL;
  b.anzknoten = 0;
 } // <--- Ende initialize


void baumaus(ofstream & datout, const baum b)
//  =======                                  //
// Ausgabe des Baumes "vb" in seiner Struktur. //
{ knot(datout,b.wurzel,0);
 } // <--- Ende baumaus //


void knot(ofstream & datout, const knoten * p, int t)
//  ====                                          //
// Ausgabe des Baumes, Hilfsroutine fuer "baumaus". //
{ int i;
  if (p != NULL)
  { knot(datout,p->rnachf,t+1);
    for (i=1; i <= t; i++) datout << "  ";
    datout << p->info << "\n";
    knot(datout,p->lnachf,t+1);
    }
 
 } // <--- Ende knot


PornoPenner 07.10.10 21:30

Und wo können wir Dir helfen?

ponchosi 07.10.10 21:54

Argh, jetzt habe ich doch glatt den Anfangspost mit gelöscht -.- sorry :D

Hier ist er :

Hi

Ich hab ein Programm geschrieben, dass alle möglichen Strukturen ausgibt, die man anhand von n - internen Knoten erzeugen kann.
Nur leider funktioniert dieses nicht, bzw tut nicht das, was es soll !

Schaut es euch am besten mal an !

ponchosi 08.10.10 14:37

Keiner ?
Ich weiß, ist nicht einfach zu durchschauen, aber die Lösung is verdammt wichtig und ich komm leider nicht drauf ! Wäre super, wenn sich Leute die davon Ahnung haben, sich damit beschäftigen würden :(
Mir würde auch nen anderer Lösungsansatz helfen !

Also nochmal das Problem :

Gesucht wird ein Programm, dass anhand der Vorgabe der internen Knoten, alle möglichen Strukturen in eine Datei speichert !

Danke Euch !

urga 08.10.10 18:33

Zitat:

Gesucht wird ein Programm, dass anhand der Vorgabe der internen Knoten, alle möglichen Strukturen in eine Datei speichert !
ist das wirklich der exakte wortlaut der aufgabenstellung?
was bedeutet "vorgabe" und was sind bei einem binärbaum "interne" knoten?
uns was ist mit "alle möglichen strukturen" wohl gemeint?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.