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

lsta dwukierunkowa - dodawanie sortujące

Ostatnio zmodyfikowano 2017-05-05 14:34
Autor Wiadomość
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


C/C++
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 ); // generuje i zapisuje do tablicy  ciag
for( int i = 0; i < n; i++ )
{
   
    dodaj_sortujac( & head, tabn, n, i ); // zapis tablicy do listy
}
P-160718
« 1 »
  Strona 1 z 1