WEB开发网
开发学院软件开发C语言 数据结构与算法(C#实现)系列---演示篇(三) 阅读

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

 2004-02-07 12:45:06 来源:WEB开发网   
核心提示: 数据结构与算法(C#实现)系列---演示篇(三) Heavenkiller(原创) public static void ShowSortedList_Polynomial() { //100+10*x+x^2 + 1+10*x+100x^2 SortedList tmpListA=new SortedLis

        数据结构与算法(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);

   }

}

Tags:数据结构 算法 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接