您的位置:首页 > 理论基础 > 数据结构算法

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

2008-03-03 02:42 761 查看
数据结构与算法(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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: