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. #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; }
|
|
darko202 |
» 2017-03-13 12:32:11 Zastanów się jak budujesz to drzewo i ile ono może mieć gałęzi
|
|
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. |
|
pekfos |
» 2017-03-13 17:48:50 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.. |
|
jasiekkm Temat założony przez niniejszego użytkownika |
» 2017-03-13 18:20:05 |
|
pekfos |
» 2017-03-13 18:28:38 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. |
|
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. |
|
pekfos |
» 2017-03-13 19:27:50 struct WezelDrzewa { int wartosc; WezelListy * dzieci; };
struct WezelListy { WezelListy * nastepny; WezelDrzewa * poddrzewo; }; |
|
« 1 » |