ďťż

Ładny brzuch

Witam!
Napisalem f-cje tworzaca liste 2-kierunkowa i wstawiajaca kolejne rekordy alfabetycznie wzgledem nazwiska
struct data {        char nazwisko[80];        char imiona[80];        char urodziny[10];        char telefon[10];        data *nastepny;        data *poprzedni; };
data *wsk; wsk=new data;        zapis(wsk);        wczytuj(wsk,&koniec,&poczatek);

/************FUNKCJA TWORZACA/WCZYTUJACA LISTE*********/ void wczytuj(struct data *nowy, struct data **kon,struct data **pocz) {        if(*kon==NULL) //lista pusta        {          *pocz=nowy;          *kon=nowy;          nowy->nastepny=NULL;          nowy->poprzedni=NULL;        }        else        {                struct data *wsk; //dod.wskaznik do struktury                wsk=*pocz;                        while(wsk)                        {                                if( (strcmp(nowy->nazwisko,wsk->nazwisko))<0)                                {                                                if(*pocz==wsk) // na pocz                                                {                                                        (*pocz)->poprzedni=nowy;                                                        nowy->nastepny=*pocz;                                                        nowy->poprzedni=NULL;                                                        *pocz=nowy;                                                }                                                else if(*kon==wsk) // koniec                                                {                                                        (*kon)->nastepny=nowy;                                                        nowy->poprzedni=*kon;                                                        nowy->nastepny=NULL;                                                        *kon=nowy;                                                }                                                else //srodek                                                {                                                        wsk->poprzedni->nastepny=nowy;                                                        wsk->nastepny->poprzedni=nowy;                                                }                                }                        wsk=wsk->nastepny;                        }        } }

Z tego co zauwazylem na pewno dobrze sa napisane f-cje na pierwszy elelemnt i wstawianie na poczatek.(sprawdzalem osobno) Gdy dam kolejnosc nazwisk zaczynajacych sie na litery np p ( Z , G, C, A) dziala ok .
Problem pojawia sie juz w komencie gdy probuje wstawić cos w srodek lub dopisac do konca.
Gdy w petli zostawie same f-cje dopisujace na pocz i koniec program wyklada na 3-cim elemencie:/

kod:
http://www.toya.net....isu/LISTA2c.CPP
Użytkownik Crisu edytował ten post 11 luty 2006, 21:41


Nie napisałeś na co mają wskazywać nowy->nastepny oraz nowy->poprzedni.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •