#1 2011-11-17 16:26:22

michal8m

Administrator

Zarejestrowany: 2011-02-03
Posty: 45
Punktw :   

Listy<-> Zad 1

Zaimplementuj podstawowe operacje na listach dwukierunkowych:



void insert(int x, elem *&lista) {
    elem* obw = new elem;
    obw->dane = x;
    obw->poprz = NULL;
    if (lista) {
        lista->poprz = obw;
        obw->nast = lista;
        lista = obw;
    } else {
        lista = obw;
        lista->nast = NULL; //moz przyspiesz..
    }

}

void insert(int x, int i, elem *&lista) {
    elem* obw = new elem;
    obw->dane = x;
    if (i != 0) {
        elem* pam = lista;
        while (i > 0) {
            pam = pam->nast; //wyjatek
            i--;
        }
        pam->poprz->nast = obw;
        obw->poprz = pam->poprz;
        obw->nast = pam;
        pam->poprz = obw;
    } else {
        if (lista) {
            obw->nast = lista;
            obw->poprz = NULL;
            lista->poprz = obw;
            lista = obw;
        } else {
            lista = obw;
            obw->nast = NULL;
            obw->poprz = NULL;
        }
    }

}

int remove(elem *&lista) {
    elem* d = lista;
    lista = lista->nast;
    lista->poprz = NULL;
    delete d;
}

int remove(int i, elem *&lista) {
    elem* pam = lista;
    elem* d = lista;
    if (i != 0) {
        while (i != 0) {
            d = d->nast; //wyjatek
            i--;
        }
        d->nast->poprz = d->poprz;
        d->poprz->nast = d->nast;
        lista = pam;
    } else {
        lista = lista->nast;
        lista->poprz = NULL;
    }
    delete d;
}

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
Проживание Германия wellness wellness hotel Ciechocinek