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

Najbliższa wartość poszukiwanej (stuktury)

Ostatnio zmodyfikowano 2017-11-24 20:59
Autor Wiadomość
nopedope
Temat założony przez niniejszego użytkownika
Najbliższa wartość poszukiwanej (stuktury)
» 2017-11-24 16:16:37
Witam serdecznie, potrzebuję pomocy przy pętli wyszukującej najbliższą wartość do poszukiwanej. ID w strukturze są uporządkowane rosnąco i nie powtarzają się. W przypadku mojej pętli wpisując dane np:1, 9, 7, 3, 5 według tej pętli ID struktury uporządkuje wg kolejności: 1, 5, 3, 7, 9 (rozumiem dlaczego tak to robi, ale nie wiem w jaki inny sposób zapisać taką pętle?
C/C++
//wczesniej sa funkcje wpisujace pierwszy i ostatni el. struktury oraz przypadki w ktorym ID jest mniejsze od pierwszego lub
//wieksze od ostatniego oraz gdy ID sie powtarza
while( first->ID <= ID ) //poki pierwsze ID struktury jest mniejsze lub rowne ID nowemu
{
    wsk2 = wsk;
    wsk = wsk->next; //przechodzimy na nastepne ID w strukturze
    if( wsk->ID == ID ) //jeli ID sie powtarza to jest blad
    {
        cout << "\n Blad!";
        break;
    }
    if( wsk == last ) //jesli petla osiagnie ostatnie ID w strukturze
    {
        wstaw_srodek( ID, wsk2 ); //funkcja wpisujaca w srodek
        break;
    }
    wstaw_srodek( ID, wsk2 ); //jesli szukany el. nie jest na koncu struktury(tu jest blad)
    break;
}
Nie chcę wklejać całego programu, bo już to jest ponad 200 linijek, a mi chodzi tak naprawdę tylko o algorytm wyszukiwania najbliższego elementu ID (który jest większy od szukanej).
P.S. Ta struktura to cykliczna lista dwukierunkowa.
P-167148
mateczek
» 2017-11-24 20:59:12
jak chcesz dojechać do odpowiedniej pozycji to zrób to w tym stylu
C/C++
while( wsk->next->ID < ID ) {
    wsk = wsk.next;
   
}
wstaw_srodek( ID, wsk );
P-167156
« 1 »
  Strona 1 z 1