数据结构与算法(C#实现)系列---演示篇(三)

来源: 作者: 2006-02-01 出处:pcdog.com

  • 数据结构与算法
  •                    数据结构与算法(C#实现)系列---演示篇(三)

                                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)

                  {

                       object 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);

     

             }

     

    }


    更多内容请看PCdog.com--数据结构数据结构与算法数据结构相关文章专题
    上一篇:数据结构与算法(C#实现)系列---树(一)
    下一篇:数据结构与算法(C#实现)系列---演示篇(二)