/*
*
* lista osztaly megvalositasa: list.cpp
*/
#include <iostream>
#include "list.h"
using namespace std;
lista::lista()
{
elso = utolso = 0; // this->elso = this->utolso = 0;
elemek_szama = 0; // this->elemek_szama = 0;
}
lista::~lista()
{
while ( elso ) // this->elso
{
elem *kurrens = elso;
elso = kurrens->kovetkezo;
// elso->elozo = 0;
// --elemek_szama;
delete kurrens;
}
}
void lista::beszur( elem *p, int ii)
{
elem *uj = new elem;
uj->ertek = ii;
uj->elozo = uj->kovetkezo = 0;
if ( !elso ) // ures a lista
{
elso = utolso = uj;
}
else if ( !p ) // nem ures lista vegere appendalunk
{
uj->elozo = utolso;
utolso->kovetkezo = uj;
utolso = uj;
}
else if ( p == elso ) // nem ures lista elso poziciojara szurunk be
{
uj->kovetkezo = elso;
elso->elozo = uj;
elso = uj;
}
else // nem ures lista kozbulso poziciojara szurunk be p ele
{
uj->kovetkezo = p;
uj->elozo = p->elozo;
uj->elozo->kovetkezo = uj;
p->elozo = uj;
}
++elemek_szama;
}
void lista::rendezve_beszur( int ii )
{
elem *kurrens = elso;
while ( kurrens && ii > kurrens->ertek )
{
kurrens = kurrens->kovetkezo;
}
beszur( kurrens, ii);
}
void lista::kiir_elore()
{
elem *kurrens = elso;
while ( kurrens )
{
cout << kurrens->ertek << endl;
kurrens = kurrens->kovetkezo;
}
}
void lista::kiir_hatra()
{
elem *kurrens = utolso;
while ( kurrens )
{
cout << kurrens->ertek << endl;
kurrens = kurrens->elozo;
}
}