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

王朝c#·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航