資料結構與演算法(C#實現)系列---示範篇(二)

來源:互聯網
上載者:User
資料|資料結構|演算法 資料結構與演算法(C#實現)系列---示範篇(二)

Heavenkiller(原創)

public static void ShowGeneralTree_travel()

{

IEnumerator tmpIEnum;

Tree.TraversalType travelType=0;



//---------------------提示----------------------------

Console.WriteLine("please choose a the No. of a item you want to travel:");

Console.WriteLine("1.BreadthFirst----- 廣度遍曆");

Console.WriteLine("2.PreDepthFirst-----前序走訪");

Console.WriteLine("3.InDepthFirst----中序遍曆");

Console.WriteLine("4.PostDepthFirst----後序遍曆");

switch(Console.ReadLine())

{

case "1"://Show Stack

travelType=Tree.TraversalType.Breadth;

Console.WriteLine("廣度遍曆");

break;

case "2"://SortedList

travelType=Tree.TraversalType.PreDepth;

Console.WriteLine("前序走訪");

break;

case "3":

travelType=Tree.TraversalType.InDepth;

Console.WriteLine("中序遍曆");

break;

case "4":







travelType=Tree.TraversalType.PostDepth;

Console.WriteLine("後序遍曆");

break;



default:

break;

}

//構造一棵廣義樹 generaltree

GeneralTree A=new GeneralTree("A");

GeneralTree B=new GeneralTree("B");

GeneralTree C=new GeneralTree("C");

GeneralTree D=new GeneralTree("D");

GeneralTree E=new GeneralTree("E");

GeneralTree F=new GeneralTree("F");

A.AttackSubtree(B);

A.AttackSubtree(C);

B.AttackSubtree(D);

B.AttackSubtree(E);

A.AttackSubtree(F);

//show the operation

Console.WriteLine("A.AttackSubtree(B)");

Console.WriteLine("A.AttackSubtree(C)");

Console.WriteLine("B.AttackSubtree(D)");

Console.WriteLine("B.AttackSubtree(E)");

Console.WriteLine("A.AttackSubtree(F)");

//--------------------------------------------------------



A.SetTraversalType(travelType);//設定遍曆類型

tmpIEnum=A.GetEnumerator();



//Console.WriteLine("begin to depthfist travel:");



while(tmpIEnum.MoveNext())

{

Console.WriteLine(tmpIEnum.Current.ToString());

}





}



public static void ShowStack_RPNCalCulator()

{

//read a expression string and push every character into the stack in queue.

Console.WriteLine("this is performance for stack,you can input a string like this '123*+',then this subprogramme can compute it and get the result '7',this is RPN calculator. ");

Console.WriteLine("please input a expression string:");

string strExpression=Console.ReadLine();

char [] tmpChars=strExpression.ToCharArray(0,strExpression.Length);

Stack stackRPN=new Stack();







int numA,numB;

foreach(char tmp in tmpChars)

{

switch (tmp)

{



case '*':

numA=(int)stackRPN.Pop();

numB=(int)stackRPN.Pop();

stackRPN.Push(numA*numB);

break;

case '+':

numA=(int)stackRPN.Pop();

numB=(int)stackRPN.Pop();

stackRPN.Push(numA+numB);

break;

default:

stackRPN.Push(Int32.Parse(tmp.ToString()));

break;



}







}

Console.WriteLine("the result is:{0}",stackRPN.Pop().ToString());





}







聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.