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; } } } }
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; } }