⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 edge.java

📁 经典的货郎担问题解决办法
💻 JAVA
字号:
/*** This code was written by Kent Paul Dolan.  See accompanying file** TravellerDoc.html for status for your use.*/package com.well.www.user.xanthian.java.structures;import com.coyotegulch.tools.*;import com.coyotegulch.genetic.*;import com.well.www.user.xanthian.java.genetic.*;import com.well.www.user.xanthian.java.tools.*;import com.well.www.user.xanthian.java.ui.*;public class Edge extends Object implements ContentComparable, Cloneable{  private Codon   m_start;  private Codon   m_end;  private boolean m_matched = false;  public boolean contentIsTheSameAs( Object that )  {    return      (        (          ((Edge)this).m_start.compareTo( ((Edge)that).getStart() )          ==          Sortable.THIS_EQUAL_TO        )        &&        (          ((Edge)this).m_end.compareTo( ((Edge)that).getEnd() )          ==          Sortable.THIS_EQUAL_TO        )        &&        (          this.m_matched == ((Edge)that).getMatched()        )      );  }  public int compareTo( Object that )  {    if    (      (        ((Edge)this).m_start.compareTo( ((Edge)that).getStart() )        ==        Sortable.THIS_LESS_THAN      )      ||      (        (          ((Edge)this).m_start.compareTo( ((Edge)that).getStart() )          ==          Sortable.THIS_EQUAL_TO        )        &&        (          ((Edge)this).m_end.compareTo( ((Edge)that).getEnd() )          ==          Sortable.THIS_LESS_THAN        )      )    )    {      return Sortable.THIS_LESS_THAN;    }    if    (      (        ((Edge)this).m_start.compareTo( ((Edge)that).getStart() )        ==        Sortable.THIS_GREATER_THAN      )      ||      (        (          ((Edge)this).m_start.compareTo( ((Edge)that).getStart() )          ==          Sortable.THIS_EQUAL_TO        )        &&        (          ((Edge)this).m_end.compareTo( ((Edge)that).getEnd() )          ==          Sortable.THIS_GREATER_THAN        )      )    )    {      return Sortable.THIS_GREATER_THAN;    }    return Sortable.THIS_EQUAL_TO;  }  public void swap( Object object_1 , Object object_2 )  {    if (CheckBoxControls.getState(CheckBoxControls.CBC_DEBUG_PRINTOUTS))    {      System.out.println      (        "Entered Edge.swap( Object object_1, Object object_2 ): "        + "("        + ((Edge)object_1).m_start.get()        + ","        + ((Edge)object_1).m_end.get()        + ","        + ( ((Edge)object_1).m_matched ? "t" : "f" )        + ")"        + ", "        + "("        + ((Edge)object_2).m_start.get()        + ","        + ((Edge)object_2).m_end.get()        + ","        + ( ((Edge)object_2).m_matched ? "t" : "f" )        + ")"      );    }    try    {      Codon sTemp                = new Codon( ((Edge)object_1).m_start );      Codon eTemp                = new Codon( ((Edge)object_1).m_end   );      boolean mTemp              = ((Edge)object_1).m_matched;      ((Edge)object_1).m_start   = new Codon( ((Edge)object_2).m_start );      ((Edge)object_1).m_end     = new Codon( ((Edge)object_2).m_end   );      ((Edge)object_1).m_matched = ((Edge)object_2).m_matched;      ((Edge)object_2).m_start   = new Codon( sTemp );      ((Edge)object_2).m_end     = new Codon( eTemp );      ((Edge)object_2).m_matched = mTemp;    }    catch (Exception e)    {      System.out.println( "Edge.swap() threw" );    }  }/*  public Object clone()  {    return ( (Object) this.clone() );  }*/  public Codon getStart()  {    if (CheckBoxControls.getState(CheckBoxControls.CBC_DEBUG_PRINTOUTS))    {      System.out.println      (        "Entered Edge.getStart() "        + this.m_start.get()      );    }    return m_start;  }  public Codon getEnd()  {    if (CheckBoxControls.getState(CheckBoxControls.CBC_DEBUG_PRINTOUTS))    {      System.out.println      (        "Entered Edge.getEnd() "        + this.m_end.get()      );    }    return m_end;  }  public boolean getMatched()  {    return m_matched;  }  public String toString()  {    StringBuffer b = new StringBuffer("");        b.append    (      "("      + this.getStart().get()      + ","      + this.getEnd().get()      + ","      + ( this.getMatched() ? "t" : "f" )      + ")"    );    return b.toString();  }  public Edge cloneThis()  {    try    {      return (Edge) this.clone();    }    catch ( Exception e )    {      // nothing to do    }    return null;  }  public Edge( Codon codon_1 , Codon codon_2 , boolean matched )  {    super();    if (CheckBoxControls.getState(CheckBoxControls.CBC_DEBUG_PRINTOUTS))    {      System.out.println      (        "Entered Edge( Codon_1 , Codon_2 , matched) = "        + codon_1.get()        + ", "        + codon_2.get()        + ", "        + ( matched ? "t" : "f" )      );    }/*** Always build in canonical form, lesser named codon in start, greater** named codon in end.*/    if ( codon_1.compareTo( codon_2 ) == Sortable.THIS_LESS_THAN )    {      this.m_start = new Codon( codon_1 );      this.m_end   = new Codon( codon_2 );    }    else    {      this.m_start = new Codon( codon_2 );      this.m_end   = new Codon( codon_1 );    }    m_matched = matched;  }  public Edge( Codon codon_1 , Codon codon_2 )  {    this( codon_1, codon_2, false );  }  public Edge( Edge that )  {    this( that.getStart(), that.getEnd(), that.getMatched() );  }  public Edge( Edge that, boolean matched )  {    this( that.getStart(), that.getEnd(), matched );  }  public Edge( int codonName1, int codonName2, boolean matched )  {    this( new Codon( codonName1 ) , new Codon( codonName2 ) , matched );  }  public Edge( int codonName1, int codonName2 )  {    this( new Codon( codonName1 ) , new Codon( codonName2 ) , false );  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -