/* * * Implementáció listával */ #include <iostream> using namespace std; struct elem { elem *elozo; elem *kovetkezo; int ertek; }; elem *elso = 0; elem *utolso = 0; int elemek_szama = 0; void elejere_fuz( int i); void vegere_fuz( int i); void kiir_elore(); void kiir_hatra(); void felszamol(); int main() { int ii; while ( cin >> ii ) { vegere_fuz(ii); } cout << "elemszam = " << elemek_szama << endl; kiir_elore(); kiir_hatra(); felszamol(); cout << "elemszam = " << elemek_szama << endl; return 0; } void elejere_fuz( int ii) { elem *uj = new elem; uj->ertek = ii; uj->elozo = uj->kovetkezo = 0; if ( elso ) { uj->kovetkezo = elso; elso->elozo = uj; elso = uj; } else { elso = utolso = uj; } ++elemek_szama; } void vegere_fuz( int ii) { elem *uj = new elem; uj->ertek = ii; uj->elozo = uj->kovetkezo = 0; if ( utolso ) { uj->elozo = utolso; utolso->kovetkezo = uj; utolso = uj; } else { elso = utolso = uj; } ++elemek_szama; } void kiir_elore() { elem *kurrens = elso; while ( kurrens ) { cout << kurrens->ertek << endl; kurrens = kurrens->kovetkezo; } } void kiir_hatra() { elem *kurrens = utolso; while ( kurrens ) { cout << kurrens->ertek << endl; kurrens = kurrens->elozo; } } void felszamol() { while ( elso ) { elem *kurrens = elso; elso = kurrens->kovetkezo; // elso->elozo = 0; // --elemek_szama; delete kurrens; } elso = 0; utolso = 0; elemek_szama = 0; }