資料結構與演算法(C#實現)系列---演示篇(三) (轉)
資料結構與演算法(實現)系列---演示篇(三):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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料結構與演算法(C#實現)系列---演示篇(一) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---演示篇(二) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---樹(三) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---樹(二) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---樹(一) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---廣義樹(一) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---廣義樹(二) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---N叉樹(一) (轉)資料結構演算法C#
- 資料結構與演算法(C#實現)系列---N叉樹(二) (轉)資料結構演算法C#
- 資料結構與演算法系列(一)陣列實現資料結構演算法陣列
- C#資料結構與演算法系列(八):棧(Stack)C#資料結構演算法
- C#資料結構與演算法系列(十五):排序演算法(SortAlgorithm)C#資料結構演算法排序Go
- 演算法與資料結構解析-- 系列文章彙總篇演算法資料結構
- C#資料結構篇(二 堆疊) (轉)C#資料結構
- C#資料結構篇(一連結串列類) (轉)C#資料結構
- 資料結構與演算法——常用高階資料結構及其Java實現資料結構演算法Java
- 演算法與資料結構系列 ( 二 ) - 實現前的基礎準備演算法資料結構
- 資料結構與演算法系列3資料結構演算法
- 演算法與資料結構-棧(Stack)-Java實現演算法資料結構Java
- 使用C#實現資料結構堆C#資料結構
- 資料結構系列之LRU演算法理論篇資料結構演算法
- Java資料結構與排序演算法 (三)Java資料結構排序演算法
- 《redis設計與實現》1-資料結構與物件篇Redis資料結構物件
- C#資料結構與演算法系列(二十一):希爾排序演算法(ShellSort)C#資料結構演算法排序
- 演算法與資料結構系列 ( 三 ) - 選擇排序法- Select Sort演算法資料結構排序
- 資料結構與演算法JavaScript (三) :連結串列資料結構演算法JavaScript
- 資料結構與演算法系列 目錄資料結構演算法
- 資料結構與演算法學習-開篇資料結構演算法
- TypeScript演算法與資料結構-陣列篇TypeScript演算法資料結構陣列
- 資料結構與演算法——基礎篇(一)資料結構演算法
- 資料結構與演算法(三),棧與佇列資料結構演算法佇列
- 資料結構與演算法-反轉排序資料結構演算法排序
- 資料結構與演算法總論 (轉)資料結構演算法
- 『資料結構與演算法』棧:詳解與程式碼實現資料結構演算法
- 資料結構與演算法-資料結構(棧)資料結構演算法
- 前端基礎系列(三) -- 演算法 + 資料結構基礎前端演算法資料結構
- 【資料結構與演算法】快速排序(三種程式碼實現以及工程優化)資料結構演算法排序優化
- Redis系列文章-資料結構篇Redis資料結構