-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathListaOrdImp.h
71 lines (51 loc) · 1.57 KB
/
ListaOrdImp.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#ifndef LISTAORDIMP_H
#define LISTAORDIMP_H
#include <assert.h>
#include "ListaOrd.h"
#include "IteradorListaOrdImp.h"
#include "NodoLista.h"
template <class T>
class IteradorListaOrdImp;
template <class T>
class ListaOrdImp: public ListaOrd<T> {
friend class IteradorListaOrdImp<T>;
friend ostream &operator<<(ostream& o, const ListaOrdImp<T> & l);
public:
// Constructor por defecto
ListaOrdImp();
// Constructor copia
ListaOrdImp(const ListaOrd<T> &l);
ListaOrdImp(const ListaOrdImp<T> &l);
// Operador de asignacion
ListaOrd<T> &operator=(const ListaOrd<T> &l);
ListaOrd<T> &operator=(const ListaOrdImp<T> &l);
// Para ver la documentacion del resto de las funciones ver la especificacion
ListaOrd<T>* CrearVacia() const;
virtual ~ListaOrdImp();
void AgregarOrd(const T &e);
void BorrarMinimo();
void BorrarMaximo();
void Borrar(const T &e);
const T& Minimo() const;
const T& Maximo() const;
T& Recuperar(const T&) const;
bool Existe(const T &e) const;
void Vaciar();
unsigned int CantidadElementos() const;
bool EsVacia() const;
bool EsLlena() const;
ListaOrd<T>* Clon() const;
Iterador<T> GetIterador() const;
void Imprimir(ostream& o) const;
protected:
void AgregarOrdAux(NodoLista<T> *nodo, const T &e);
void BorrarAux(NodoLista<T> *nodo, const T &e);
void AgregarPpio(const T &e);
void AgregarFin(const T &e);
// Atributos
NodoLista<T> *ppio; //Puntero al ppio de la lista
NodoLista<T> *fin; //Puntero al fin de la lista
unsigned int largo; //Lleva la cuenta de la cantidad de elementos de la lista
};
#include "ListaOrdImp.cpp"
#endif