// II17 2005-06 // Tema2/Problema-Region/Region.h // 07-12-2005 // Ejercicio del Tema 2: problema 1 del examen del 03-02-2003 // Suponemos que el orden de los puntos en la lista no es relevante, // por lo que no nos preocupamos de conservarlo. // En esta solucion se ha tenido en cuenta la eficiencia algoritmica, // por ejemplo evitando soluciones que cuestan tiempo O(n^2) para algo // que se puede resolver en tiempo O(n). #ifndef _REGION_H #define _REGION_H #include using namespace std; #include "Punto2D.h" class Region { struct Nodo { Punto2D punto; Nodo *siguiente; Nodo (Punto2D, Nodo *); }; Nodo *lista; public: Region (); bool PertenecePunto (Punto2D) const; void InsertarPunto (Punto2D); void Vaciar(); Region (Punto2D); // Constructor que se usara implicitamente como // conversor al sumar Region+Punto2D o Punto2D+Region Region (const Region &); Region & operator= (const Region &); ~Region(); Region & operator+= (const Region &); friend Region operator+ (const Region &, const Region &); friend ostream & operator<< (ostream &, const Region &); // Este no se pedia friend istream & operator>> (istream &, Region &); }; #endif