Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

problem z drzewem

Ostatnio zmodyfikowano 2017-03-13 19:27
Autor Wiadomość
jasiekkm
Temat założony przez niniejszego użytkownika
problem z drzewem
» 2017-03-12 19:16:09
Witam, mam do napisania program na uczelnie, wyswietlajacy drzewo z randomowa iloscia galezi, liczb podawanych przez uzytkowania. Nie moge korzystac z tablic, ani z zadnych innych bibliotek niz podane ponizej. Program prawie dziala z wyjatkiem tego ze koncowo wyswietla ostatnia podana liczbe.

C/C++
#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

struct wezel {
    int value;
    wezel * right;
};

void WstawDane( wezel * r, int x )
{
    cout << "wstawiany:" << x << endl;
    if( r == NULL )
    {
        wezel * nowy = new wezel;
        nowy->value = x;
        nowy->right = NULL;
        r = nowy;
    }
    else
         WstawDane( r->right, x );
   
}


void WyswietlDrzewo( wezel * r, int x, int ile )
{
   
    srand( time( NULL ) );
    int licznik = 0;
   
    while( licznik < ile )
    {
        int p = rand() % 7 + 1;
        for( int i = 0; i < 1; i++ ) {
            cout <<( r->right, x ) << endl;
            licznik += 1;
            if( licznik >= ile )
                 exit( 1 );
           
        }
       
        int q = 0;
        for( int j = 0; j < p && j < ile; j++ )
        {
            int n = rand() % 3 + 1;
            for( int w = 0; w < n; w++ ) {
                if( j > 0 ) { cout << "|"; }
                if( j > 0 )
                {
                    for( int m = 0; m < q; m++ ) {
                        cout << "     "; }
                }
               
                cout << "|" << "----" <<( r->right, x ) << endl;
               
                licznik += 1;
                if( licznik >= ile )
                     exit( 1 );
               
            } q++;
        }
    }
}


int main( void )
{
    int ile;
    cout << "Podaj ilosc wierzcholkow, ktore chcesz umiescic w drzewie: " << endl;
    cin >> ile;
    int wstawiany;
    wezel * root = NULL;
    for( int i = 0; i < ile; i++ ) {
        cout << "w" << i + 1 << ": ";
        cin >> wstawiany;
        WstawDane( root, wstawiany );
    }
   
    cout << endl << endl << endl << "Twoje drzewo wyglada nastepujaco: " << endl << endl;
   
    cout << "PRÓBA!" << endl;
    cout << "root:" << root << endl;
    cout << "wstawiany:" << wstawiany << endl;
    cout << "ile:" << ile << endl;
   
    WyswietlDrzewo( root, wstawiany, ile );
   
    cout << endl << endl;
   
    system( "PAUSE" );
    return 0;
}
P-158931
darko202
» 2017-03-13 12:32:11
Zastanów się jak budujesz to drzewo i ile ono może mieć gałęzi
P-158941
jasiekkm
Temat założony przez niniejszego użytkownika
» 2017-03-13 17:41:59
to drzewo nie ma miec okrelonej liczby galezi, nie jest to binarne drzewo. Albo losowo albo uzytkownik podaje liczby i galezie.
P-158945
pekfos
» 2017-03-13 17:48:50
C/C++
cout <<( r->right, x ) << endl;
Co to robi?

to drzewo nie ma miec okrelonej liczby galezi, nie jest to binarne drzewo. Albo losowo albo uzytkownik podaje liczby i galezie.
To może pytanie pomocnicze.. Widziałeś kiedyś drzewo? Takie co w lesie rośnie..
P-158946
jasiekkm
Temat założony przez niniejszego użytkownika
» 2017-03-13 18:20:05
To wyswietla x, kumpel to pisal i przekombinowal. Nie tam jest blad wiec nie czepiajmy sie pierdol. Widzialem drzewo. Mowie tylko jakie mam polecenie.


http://imagizer.imageshack.us​/v2/150x100q90/924/J7Yxnm.jpg
P-158948
pekfos
» 2017-03-13 18:28:38
C/C++
struct wezel {
    int value;
    wezel * right;
};
Twoje aktualne 'drzewo' to lista jednokierunkowa. Polecenie mówi, że każdy węzeł drzewa ma mieć własną listę jednokierunkową, zawierającą adresy węzłów potomnych.
P-158949
jasiekkm
Temat założony przez niniejszego użytkownika
» 2017-03-13 18:31:32
to jak to zmodyfikowac? dodac cos w jakiejs petli? prosze o wskazowki, dostalismy projekt bez wiekszego wprowadzenia.
P-158950
pekfos
» 2017-03-13 19:27:50
C/C++
struct WezelDrzewa
{
    int wartosc;
    WezelListy * dzieci;
};

struct WezelListy
{
    WezelListy * nastepny;
    WezelDrzewa * poddrzewo;
};
P-158951
« 1 »
  Strona 1 z 1