lsta dwukierunkowa - dodawanie sortujące
Ostatnio zmodyfikowano 2017-05-05 14:34
mikewazowski Temat założony przez niniejszego użytkownika |
lsta dwukierunkowa - dodawanie sortujące » 2017-05-05 14:34:16 potrzebuje listy dwukierunkowej do której elementy dodają się rosnąco, mój problem z kodem polega na tym że część elementów jest dodawana do listy rosnąco a część losowo, przez co cała lista jest nieposortowana struct Student { Dane dane; Student * next; Student * prev; }; Student * stworzelement( int tab[], int ile, int i ) { Student * element; int liczba; liczba = tab[ i ]; element = new Student(); element->next = NULL; element->dane.liczba = liczba; return element; }
void dodaj_sortujac( Student ** head, int tab[], int ile, int i ) { Student * pom, * tmp = stworzelement( tab, ile, i ); if( * head == NULL ) * head = tmp; else if(((( * head )->dane.liczba ) ==( tmp->dane.liczba ) ) > 0 ) { tmp->next = * head; * head = tmp; } else { pom =( * head ); while(( pom->next != NULL ) &&((( pom->next->dane.liczba ) ==( tmp->dane.liczba ) ) < 0 ) ) pom = pom->next; tmp->next = pom->next; pom->next = tmp; } } int n; cout << "rozmiar tab: " << endl; cin >> n; int * tabn = new int[ n ]; generowanie_parzystych_losowych( tabn, n ); for( int i = 0; i < n; i++ ) { dodaj_sortujac( & head, tabn, n, i ); }
|
|
« 1 » |