C/Visual C - Operaciones con conjuntos

 
Vista:

Operaciones con conjuntos

Publicado por Sonia Tatiana Cruz Laz (1 intervención) el 22/09/2005 20:51:28
Me pueden ayudar con un el codigo para realizar operaciones con conjuntos les agradeceria mucho es para un proyecto y lo he estado realizando pero no me salen
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Operaciones con conjuntos

Publicado por fernando.gomez (1603 intervenciones) el 23/09/2005 00:01:59
Yo te podría ayudar. De hecho no es algo muy complicado. Tienes dos conjuntos A,B, que supongamos son instancias de std::set para mayor comodidad. Entonces tenemos los siguientes algoritmos:

1. Union. Copias todos los elementos de B a A. std::set se encargará de eliminar los duplicados. A U B <=> x E A ó x E B.
2. Intersección. Iteras sobre A, y a cada elemento de A verificas que está en B. Si sí lo está, este elemento lo insertas en un conjunto auxiliar C. A intersección B <=> x E A y x E B.
3. Complemento. Iteras sobre todo A, y si a un elemento de A encuentras que está en B, lo eliminas del conjunto A. A - B = x E A y x ~E B.

Para manejar álgebra de conjuntos, es lo mismo, sólo que aplicado varias veces. Por ejemplo, A U B U C para A,B,C conjuntos. Primero calculas A U B, y sobre ese resultado, operas la unión con C.

Si std::set::size == 0, tienes tu conjunto vacío.

La operación con conjuntos es muy empleada en las bases de datos. Por ejemplo, cuando haces un select: select * from tabla where campo1 = 'A', estás obteniendo un subconjunto de la tabla. Cuando haces joins, buscas la intersección entre conjuntos.

Finalmente, conceptos más avanzados de conjuntos como la potencia (todos los subconjuntos posibles de un conjunto dado), las relaciones (todos los subconjuntos posibles del producto cartesiano entre dos conjuntos dados) o la cardinalidad de conjuntos (existe una función I_n:|N-->A inyectiva tal que f(n) = a_n con a_n E A, donde |N son los naturales), sobre todo si estos son infinitos o más grandes que la capacidad de memoria, pues sí se necesita mucho más desarrollo, sobre todo a nivel semántico.

En fin, me encantan los conjuntos =), de hecho yo voy para topología. En fin, más dudas o caso más concreto, me avisas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar