/* * * lista osztaly */ #include <iostream> using namespace std; struct elem { elem *elozo; elem *kovetkezo; int ertek; }; class lista { public: lista(); // inicializal ~lista(); // felszamol void beszur( elem *p, int i); void rendezve_beszur( int i); void kiir_elore(); void kiir_hatra(); int elemszam() { return elemek_szama; } private: elem *elso; elem *utolso; int elemek_szama; lista(const lista&); void operator=(const lista&); }; int main() { int ii; lista l1; // inicializal lista l2; while ( cin >> ii ) { l1.rendezve_beszur(ii); } cout << "======= jojjon a masik =========" << endl; cin.clear(); // ez fontos! while ( cin >> ii ) { l2.rendezve_beszur(ii); } cout << "elemszam = " << l1.elemszam() << endl; l1.kiir_elore(); cout << "elemszam = " << l2.elemszam() << endl; l2.kiir_elore(); return 0; // felszamolodik l1 és l2 is } 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; } }