首 页 | 精品电影 | 音乐天堂 | 在线游戏 | Flash MTV | 三湘书屋 | 幽默笑话 | 三湘图库 | 美女写真 | IT知识库 | QQ贴图 | 加入书签

网页制作网络编程图形图象操作系统冲浪宝典软件教学网络安全认证考试通信技术电子商务业内动态书籍教程原码

最近更新 文章分类 多媒体类 精品软件

本站搜索:
您的位置:三湘时空 -> IT知识库 -> 文章分类 -> C#教程 -> 数据结构与算法(C#实现)系列---演示篇(二)  
数据结构与算法(C#实现)系列---演示篇(二)


文章类别:C#教程 来源: 作者: 发表日期:2005-10-4 字体:[ ]

小游戏 | 在线影院 | 幽默笑话 | 源码下载 | Flash MTV | 音乐试听 | 书屋 | 美女写真

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

 

 

          }

 

上一篇:数据结构与算法(C#实现)系列---演示篇(一) 下一篇:数据结构与算法(C#实现)系列---演示篇(三)
本栏目热门文章
·C#语言初级入门(1) 2005-10-4
·C# 中的类型转换 2006-4-10
·C#语言初级入门(3) 2005-10-4
·C#语言初级入门(2) 2005-10-4
·C#,深入浅出全接触(一) 2005-10-4
·c#学习笔记(1) 2005-10-4
·C# 3.0语言详解之基本的语言增强 2005-10-22
·C#的前途如何? 2005-10-4
·C#,深入浅出全接触(二) 2005-10-4
·基于C#的接口基础教程之一 2005-10-4
新近更新文章
·C# 3.0新特性初步研究 Part1:使用隐含类型的本地变量 2006-6-12
·C# 4.0语言将出现重大改变,带来一段Code Preview 2006-6-12
·C# 3.0新特性初步研究 Part6:使用查询表达式 2006-6-12
·C# 3.0新特性初步研究 Part5:匿名类型 2006-6-12
·C# 3.0新特性初步研究 Part4:使用集合类型初始化器 2006-6-12
·C# 3.0新特性初步研究 Part3:使用拉姆达表达式 2006-6-12
·C# 3.0新特性初步研究 Part2:使用扩展方法 2006-6-12
·c#泛型学习(二) 2006-5-12
·c#2.0泛型学习(一) 2006-5-12
·C# 编码规范和编程好习惯 2006-4-30
首 页 | 软件发布 | 广告联系 | 下载帮助 | 意见反馈 | 网站地图
  CopyRight? 2002-2004 WWW.SXSKY.NET? All Rights Reserved
三湘时空 站长QQ:82675303 Email: