/// <summary> /// Método retorna true se passou outro obj, se ele tem o mesmo tipo /// e seus membros da esquerda-dir ão iguais para aqueles objts /// em consideracao. /// </summary> /// <param name="o"></param> /// <returns></returns> public override bool Equals(object o) { if (o == null || o.GetType() != typeof(PairValueImplementaion <T>)) { return(false); } PairValueImplementaion <T> vlrImp = (PairValueImplementaion <T>)o; return(vlrImp._t1.Equals(_t1) && vlrImp._t2.Equals(_t2)); }
public override K getPeso(T v1, T v2) { if (v1 == null || v2 == null) { throw new ArgumentNullException(); } IValues <T> vl = new PairValueImplementaion <T>(v1, v2); if (!pesoAresta.ContainsKey(vl)) { throw new ArgumentNullException(); } return(pesoAresta[vl]); }
public override bool removeAresta(T v1, T v2) { if (v1 == null || v2 == null) { throw new ArgumentNullException(); } IValues <T> vl = new PairValueImplementaion <T>(v1, v2); if (arestaSet.Contains(vl)) { arestaSet.Remove(vl); pesoAresta.Remove(vl); return(true); } return(false); }
public override bool addAresta(T v1, T v2, K peso) { if (v1 == null || v2 == null || peso == null) { throw new ArgumentNullException(); } if (!VerticeSet.Contains(v1) || !VerticeSet.Contains(v2)) { return(false); } IValues <T> vlr = new PairValueImplementaion <T>(v1, v2); if (arestaSet.Contains(vlr)) { return(false); } arestaSet.Add(vlr); pesoAresta[vlr] = peso; return(true); }