Ostatnie wpisy

void sortowanie(LISTA *pocz,int ile)
{
    if(ile==0 || ile==1) return;
    if(ile==2){
        LISTA tmp1=(*pocz),tmp2=(*pocz)->nast;
        if(strcmp(tmp1->slowo,tmp2->slowo)>0){
            tmp1->nast=tmp2->nast;
            tmp2->nast=tmp1;
            (*pocz)=tmp2;
            return;
        }
        return;
    }
    LISTA pierwszy=(*pocz),poprzedni=pierwszy,porownany1=poprzedni->nast,porownany2=porownany1->nast,tmp=NULL;
    while(porownany2){
        if(strcmp(porownany1->slowo,porownany2->slowo)>0){
            //zamiana elementow
            poprzedni->nast=porownany2;
            porownany1->nast=porownany2->nast;
            porownany2->nast=porownany1;
            //powrot na poczatek listy
            poprzedni=pierwszy;
            porownany1=pierwszy->nast;
            porownany2=porownany1->nast;
            continue;
        }
        poprzedni=poprzedni->nast;
        porownany1=porownany1->nast;
        porownany2=porownany2->nast;
    }
    LISTA drugi=NULL,trzeci=NULL;
    tmp=pierwszy;
    drugi=tmp->nast;
    trzeci=drugi->nast;
    while(drugi && trzeci){
        if(strcmp(pierwszy->slowo,drugi->slowo)>0 && strcmp(pierwszy->slowo,trzeci->slowo)<0){
            pierwszy=pierwszy->nast; (*pocz)=pierwszy;
            drugi->nast=tmp;
            tmp->nast=trzeci;
            return;
        }
        drugi=drugi->nast;
        trzeci=trzeci->nast;
    }
    if(trzeci==NULL){
        pierwszy=pierwszy->nast; (*pocz)=pierwszy;
        drugi->nast=tmp;
        tmp->nast=trzeci;
        return;
    }
}
		
  1. Nie posiadasz obsługi JavaScript. Aby potwierdzić, że nie jesteś botem, wpisz tutaj wartość MAZEE
4programmers.net