public void Agregar(int clave, int valor)
        {
            NodoClave nc = Clave2NodoClave(clave);

            if (nc == null)
            {
                nc = new NodoClave();
            }
            nc.clave    = clave;
            nc.sigClave = origen;
            origen      = nc;

            NodoValor aux = nc.valores;

            while (aux != null && aux.valor != valor)
            {
                aux = aux.sigValor;
            }
            if (aux == null)
            {
                NodoValor nv = new NodoValor();
                nv.valor    = valor;
                nv.sigValor = nc.valores;
                nc.valores  = nv;
            }
        }
        public Conjunto Recuperar(int clave)
        {
            NodoClave n = Clave2NodoClave(clave);
            Conjunto  c = new Conjunto();

            c.InicializarConjunto();
            if (n != null)
            {
                NodoValor aux = n.valores;
                while (aux != null)
                {
                    c.Agregar(aux.valor);
                    aux = aux.sigValor;
                }
            }
            return(c);
        }
 private void EliminarValorEnNodo(NodoClave nodo, int valor)
 {
     if (nodo.valores != null)
     {
         if (nodo.valores.valor == valor)
         {
             nodo.valores = nodo.valores.sigValor;
         }
         else
         {
             NodoValor aux = nodo.valores;
             while (aux.sigValor != null && aux.sigValor.valor
                    != valor)
             {
                 aux = aux.sigValor;
             }
             if (aux.sigValor != null)
             {
                 aux.sigValor = aux.sigValor.sigValor;
             }
         }
     }
 }
Ejemplo n.º 4
0
        public void Agregar(int c, int x)
        {
            Nodo aux = primero;

            while (aux != null && aux.Clave != c)
            {
                aux = aux.Sig;
            }

            if (aux != null)
            {
                NodoValor aux2 = aux.Primero;
                while (aux2 != null && aux2.Valor != x)
                {
                    aux2 = aux2.Sig;
                }

                if (aux2 == null)
                {
                    NodoValor nuevo = new NodoValor();
                    nuevo.Valor = x;
                    nuevo.Sig   = aux.Primero;
                    aux.Primero = nuevo;
                }
            }
            else
            {
                Nodo nuevo = new Nodo();
                nuevo.Clave         = c;
                nuevo.Sig           = primero;
                nuevo.Primero       = new NodoValor();
                nuevo.Primero.Valor = x;
                nuevo.Primero.Sig   = null;
                primero             = nuevo;
            }
        }