5.1 Listy jednokierunkowe 101
5.1 Listy jednokierunkowe 101
ELEMENT Aprzed=NULL,*po=inf.głowa; enum I SZUKAJ, ZAKOŃCZ} stan=SZUKAJ;
//zmienna wyliczeniowa while f(stan==SZUKAJ) && (po! =NTJT.r.) ) if <po->wartosc>=x)
stan=ZAKONCZ; //znaleźliśmy właściwe miejsce! else // przemieszczamy sie w poszukiwaniach { fi właściwego miejsca przcd-po; // wskaźniki "przed" i "po"
po=po->nastepny;// zapamiętają "miejsce"
// wstawiania
} fi analiza rezultatu poszukiwali:
if(przed==NULL) //wstawiamy na początek listy
inf.gicwa=q; q->nastepny=po;
gIsg
if(po==NULL) // wstawiamy na koniec listy i
inf.ogon->nastepny=q; q->nastepny=NULL; inf.ogon=q;
else // wstawiamy gdzieś "w środku"
przed->nascepny=q; q->nastepny=po;
int LISTA::szukaj(int x)
ELEMENT *q=int.głowa; while (q != NULL)
if (q->wartosc==x) return (1); q=q->nastepny;
)
return(0) ;
void LISTA::wypisz()