Codigo TAD Conjunto de Enteros Java

3
Set.java 1 // Implementación del TAD Conjunto de Enteros 2 // Fecha : 25/02/2013 1:24 a.m. 3 // Autor : MTI. Jorge Carranza Gómez 4 // IDE: Eclipse SDK 5 6 // Implementaciones adicionales : 7 // Incluir en la clase un atributo que almacene el Nombre del Conjunto , para 8 // imprimirlo en el método Print() 9 10 public class Set{ 11 enum ErrCode { noErr, overflow }; 12 final int MaxCard = 16; 13 // Declaración de los datos de la clase 14 15 String Nombre; 16 int elems[ ] = new int[ MaxCard ]; 17 int Card; 18 19 // Constructor de clase 20 21 public Set( String N ){ 22 Nombre = N; 23 Card = 0; 24 } 25 26 // Implementación de las funciones miembro de la clase 27 28 // Método emptySet() 29 30 public void emptySet( ){ 31 Card = 0; 32 } 33 34 // Método Member(), Verifica si un elemento es miembro del conjunto 35 // Devuelve un true en caso afirmativo y false en caso contrario 36 37 public boolean Member( int elem ){ 38 for( int i = 0; i < Card; i++ ) 39 if( elems[ i ] == elem ) 40 return true; 41 return false; 42 } 43 44 // Implementación del método AddElem(), se intenta agregar un nuevo 45 // elemento al conjunto siempre que éste no exista en el conjunto 46 47 public ErrCode AddElem ( int elem ){ 48 if( Member ( elem ) ) 49 return Set.ErrCode.noErr; 50 if( Card < MaxCard ){ 51 elems[ Card++ ] = elem; 52 return Set.ErrCode.noErr; 53 } else 54 return Set.ErrCode.overflow; 55 } 56 57 // Implementación del método que imprime los elementos del conjunto Page 1

description

Abstraccion de datos

Transcript of Codigo TAD Conjunto de Enteros Java

  • Set.java

    1 // Implementacin del TAD Conjunto de Enteros

    2 // Fecha: 25/02/2013 1:24 a.m.

    3 // Autor: MTI. Jorge Carranza Gmez

    4 // IDE: Eclipse SDK

    5

    6 // Implementaciones adicionales:

    7 // Incluir en la clase un atributo que almacene el Nombre del Conjunto, para

    8 // imprimirlo en el mtodo Print()

    9

    10 public class Set{

    11 enum ErrCode { noErr, overflow };

    12 final int MaxCard = 16;

    13 // Declaracin de los datos de la clase

    14

    15 String Nombre;

    16 int elems[ ] = new int[ MaxCard ];

    17 int Card;

    18

    19 // Constructor de clase

    20

    21 public Set( String N ){

    22 Nombre = N;

    23 Card = 0;

    24 }

    25

    26 // Implementacin de las funciones miembro de la clase

    27

    28 // Mtodo emptySet()

    29

    30 public void emptySet( ){

    31 Card = 0;

    32 }

    33

    34 // Mtodo Member(), Verifica si un elemento es miembro del conjunto

    35 // Devuelve un true en caso afirmativo y false en caso contrario

    36

    37 public boolean Member( int elem ){

    38 for( int i = 0; i < Card; i++ )

    39 if( elems[ i ] == elem )

    40 return true;

    41 return false;

    42 }

    43

    44 // Implementacin del mtodo AddElem(), se intenta agregar un nuevo

    45 // elemento al conjunto siempre que ste no exista en el conjunto

    46

    47 public ErrCode AddElem ( int elem ){

    48 if( Member ( elem ) )

    49 return Set.ErrCode.noErr;

    50 if( Card < MaxCard ){

    51 elems[ Card++ ] = elem;

    52 return Set.ErrCode.noErr;

    53 } else

    54 return Set.ErrCode.overflow;

    55 }

    56

    57 // Implementacin del mtodo que imprime los elementos del conjunto

    Page 1

  • Set.java

    58 // Imprimir los elementos que forman al conjunto

    59

    60 public void Print( ){

    61 System.out.printf( "%s: {", Nombre );

    62 for ( int i = 0; i < Card - 1; i++ )

    63 System.out.printf( "%d %s", elems[i], ", " );

    64 if ( Card > 0 )

    65 System.out.printf( "%d", elems[ Card - 1 ] );

    66 System.out.print( "} \n" );

    67 return;

    68 }

    69

    70 // Copiar los elementos del conjunto a otro conjunto

    71 // Los elementos del conjunto que hace la llamada, se copian al

    72 // conjunto que fue pasado como argumento.

    73

    74 public void Copy( Set set ){

    75 for( int i = 0; i < Card; i++ )

    76 set.elems[ i ] = elems[ i ];

    77 set.Card = Card;

    78 }

    79

    80 // Eliminar un elemento del conjunto

    81

    82 public void RmvElem( int elem){

    83 for ( int i = 0; i < Card; i++ )

    84 if (elems[ i ] == elem){

    85 for ( ; i < Card - 1; i++ )

    86 elems[ i ] = elems[ i + 1 ];

    87 Card--;

    88 }

    89 }

    90

    91 // Determina si dos conjuntos son iguales

    92

    93 public boolean Equal( Set set ){

    94 if( Card != set.Card )

    95 return false;

    96 for( int i = 0; i < Card; i++ )

    97 if( !set.Member( elems[ i ] ) )

    98 return false;

    99 return true;

    100 }

    101

    102 /*

    103 Mtodo Union( )

    104 Agrega los elementos del Conjunto C1 y luego agrega los elementos del

    105 conjunto C2 Utilizando el mtodo AddElem(), que verifica que los

    106 elementos no se repitan.

    107 */

    108

    109 public void Union(Set C1, Set C2){

    110 int i, j;

    111 emptySet( ); // Elimina todos los elemnetos del conjunto

    112 for(i = 0; i < C1.Card; ++i)

    113 AddElem(C1.elems[i]);

    114 for(j = 0; j < C2.Card; ++j)

    Page 2

  • Set.java

    115 AddElem(C2.elems[j]);

    116 }

    117

    118 /*

    119 Mtodo Intersect( )

    120 Agrega al conjunto del objeto que hace la llamada los elementos que son

    121 comunes en ambos conjuntos

    122 */

    123

    124 public void Intersect(Set C1, Set C2 ){

    125 emptySet( ); // Elimina los elementos del conjunto

    126 for( int i = 0; i < C1.Card; ++i)

    127 if(C2.Member(C1.elems[i]))

    128 AddElem(C1.elems[i]);

    129 }

    130

    131 public void Diferencia(Set C1, Set C2){

    132 emptySet( ); // Elimina los elementos del conjunto

    133 for( int i = 0; i < C1.Card; ++i)

    134 if(C2.Member(C1.elems[i])==false)

    135 AddElem(C1.elems[i]);

    136 }

    137

    138 // Mtodo de inicio de la clase.

    139

    140 public static void main(String[] args){

    141 System.out.println("Bienvenido a la Programacin en JAVA");

    142

    143 // Crear una instancia de los objetos S1, S2 y S3 a la clase Set

    144

    145 Set S1 = new Set("S1"), S2 = new Set("S2"), S3 = new Set("S3");

    146 Set S4 = new Set("S4");

    147 S1.AddElem(3); S1.AddElem(5); S1.AddElem(7);

    148 S2.AddElem(9); S2.AddElem(3); S2.AddElem(4);

    149

    150 S1.Print();

    151 S2.Print();

    152

    153 //S3 = S1;

    154

    155 S1.Copy(S3);

    156

    157 S3.RmvElem(5);

    158 S3.Print();

    159 S1.Print();

    160

    161 if(S3 == S1)

    162 System.out.println("\n S1 y S3 son iguales");

    163 else

    164 System.out.println("\n S1 y S3 son diferentes");

    165

    166 // Interseccin entre S1 y S2

    167 S4.Intersect(S1, S2);

    168 S4.Print();

    169 }

    170 }

    Page 3