資料結構與演算法(C#實現)系列---演示篇(三) (轉)

themoney發表於2007-09-15
資料結構與演算法(C#實現)系列---演示篇(三) (轉)[@more@]

  資料結構與演算法(實現)系列---演示篇(三):namespace prefix = o ns = "urn:schemas--com::office" />

  Heavenkiller(原創)

  public static void ShowSortedList_Polynomial()

  {

  //100+10*x+x^2  + 1+10*x+100x^2

  SortedList tmpListA=new SortedList();

  SortedList tmpListB=new SortedList();

  SortedList tmpListC=new SortedList();//used to store the result

  SortedList tmpKeyList=new SortedList();//used to store all keys of two polynomials

  //init polynomial A and show it

  tmpListA.Add(0,100);

  tmpListA.Add(1,10);

  tmpListA.Add(2,1);

  ShowSortedList_ShowPolynomial("tmpListA",tmpListA.GetEnumerator());

  //init polynomial B and show it

  tmpListB.Add(0,1);

  tmpListB.Add(1,10);

  tmpListB.Add(2,100);

  ShowSortedList_ShowPolynomial("tmpListB",tmpListB.GetEnumerator());

  //init the key list which contains all keys of A and B but everyone once

  IDictionaryEnumerator tmpIDic=tmpListA.GetEnumerator();

  while(tmpIDic.MoveNext()!=false)

  {

  if(!tmpKeyList.ContainsKey(tmpIDic.Key))

  {

  tmpKeyList.Add(tmpIDic.Key,null);

  }

  }

  tmpIDic=tmpListB.GetEnumerator();

  while(tmpIDic.MoveNext()!=false)

  {

  if(!tmpKeyList.ContainsKey(tmpIDic.Key))

  {

  tmpKeyList.Add(tmpIDic.Key,null);

  }

  }

  //Add A and B and show the result

  tmpIDic=tmpKeyList.GetEnumerator();

  while(tmpIDic.MoveNext()!=false)

  {

  objA=null,objB=null,objC=null;

  objC=tmpIDic.Key;

  if(tmpListA.ContainsKey(objC))

  objA=tmpListA[objC];

  if(tmpListA.ContainsKey(objC))

  objB=tmpListB[objC];

  //objC=objA+objB;

  //tmpKeyList[objC]=(int)objA+(int)objC;

  tmpListC.Add(objC,(int)objA+(int)objB);

  }

  ShowSortedList_ShowPolynomial("the addition result of A and B",tmpListC.GetEnumerator());

 

 

  }

  public static void ShowSortedList_ShowPolynomial(string tip,IDictionaryEnumerator iDic)

  {

  string strExpress=null;

  iDic.Reset();

  while(iDic.MoveNext()!=false)

  {

  strExpress+=iDic.Value.ToString()+"*X^"+iDic.Key.ToString()+"+";

  }

  Console.WriteLine(tip+":"+strExpress);

  }

 

 

 

}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10794571/viewspace-969621/,如需轉載,請註明出處,否則將追究法律責任。

相關文章