Advertisement
Guest User

conjunto.h

a guest
May 27th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. #ifndef CONJUNTO_H_
  2. #define CONJUNTO_H_
  3.  
  4. #include <assert.h>
  5. #include <string>
  6. #include <iostream>
  7. #include <stack>
  8.  
  9. using namespace std;
  10.  
  11. template <class T>
  12. class Conjunto
  13. {
  14. public:
  15.  
  16. // Constructor. Genera un conjunto vacío.
  17. Conjunto();
  18.  
  19. // Destructor. Debe dejar limpia la memoria.
  20. ~Conjunto();
  21.  
  22. // Inserta un elemento en el conjunto. Si este ya existe,
  23. // el conjunto no se modifica.
  24. void insertar(const T&);
  25.  
  26. // Decide si un elemento pertenece al conjunto o no.
  27. bool pertenece(const T&) const;
  28.  
  29. // Borra un elemento del conjunto. Si este no existe,
  30. // el conjunto no se modifica.
  31. void remover(const T&);
  32.  
  33. // Siguiente elemento al recibido por párametro, en orden.
  34. const T& siguiente(const T& elem);
  35.  
  36. // Devuelve el mínimo elemento del conjunto según <.
  37. const T& minimo() const;
  38.  
  39. // Devuelve el máximo elemento del conjunto según <.
  40. const T& maximo() const;
  41.  
  42. // Devuelve la cantidad de elementos que tiene el conjunto.
  43. unsigned int cardinal() const;
  44.  
  45. // Muestra el conjunto.
  46. void mostrar(std::ostream&) const;
  47.  
  48. private:
  49.  
  50. /**
  51. * Completar con lo que sea necesario...
  52. **/
  53.  
  54. struct Nodo
  55. {
  56. ~Nodo();
  57. // El constructor, toma el elemento al que representa el nodo.
  58. Nodo(const T& v):
  59. valor(v),izq(NULL),der(NULL){}
  60. // El elemento al que representa el nodo.
  61. T valor;
  62. // Puntero a la raíz del subárbol izquierdo.
  63. Nodo* izq;
  64. // Puntero a la raíz del subárbol derecho.
  65. Nodo* der;
  66. };
  67.  
  68. // Puntero a la raíz de nuestro árbol.
  69. Nodo* _raiz;
  70. Nodo* buscar_Nodo(const T k);
  71. //Nodo* buscar_valor_Nodo(const T& k);
  72. Nodo * padre(Nodo* q)const;
  73. T findMinimo(Nodo *raiz)const;
  74. Nodo * search(Nodo* raiz, int key);
  75. Nodo *CrearNodo( int key);
  76. Nodo * insertar( Nodo *nodo, int key);
  77. void inorder(Nodo *raiz);
  78.  
  79. void limpiar();
  80.  
  81. };
  82.  
  83. template<class T>
  84. std::ostream& operator<<(const Conjunto<T>& c, std::ostream& os) {
  85. c.mostrar(os);
  86. return os;
  87. }
  88.  
  89. #include "Conjunto.hpp"
  90.  
  91. #endif // CONJUNTO_H_
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement