知识大全 c#二叉树遍历vs2008实现

Posted 结点

篇首语:提兵百万西湖上,立马吴山第一峰!本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 c#二叉树遍历vs2008实现相关的知识,希望对你有一定的参考价值。

  下面简单介绍一下几种算法和思路

  先序遍历

   访问根结点

   按先序遍历左子树;

   按先序遍历右子树;

   例如 遍历已知二叉树结果为 A >B >D >G >H >C >E >F

  中序遍历

   按中序遍历左子树;

   访问根结点;

   按中序遍历右子树;

   例如遍历已知二叉树的结果 B >G >D >H >A >E >C >F

  后序遍历

   按后序遍历左子树;

   按后序遍历右子树;

   访问根结点;

   例如遍历已知二叉树的结果 G >H >D >B >E >F >C >A

  层次遍历

   从上到下 从左到右遍历二叉树的各个结点(实现时需要借辅助容器);

   例如遍历已知二叉树的结果 A >B >C >D >E >F >G >H

  下面只是做了一个中序遍历

  using System;

  using System Collections Generic;

  using System Linq;

  using System Text;

  namespace TreeNode_

  

  // Binary Tree的结点类

  class Node

  

  public  int Data get; set;

  public  Node LeftSubNode get; set;

  public  Node RightSubNode get; set;

  // 结点为自己追加子结点(与向左/向右追加结合 形成递归)

  public void Append(Node subNode)

  

  if (subNode Data <= this Data)

  

  this AppendLeft(subNode);

  

  else

  

  this AppendRight(subNode);

  

  

  // 向左追加

  public void AppendLeft(Node subNode)

  

  if (this LeftSubNode == null)

  

  this LeftSubNode = subNode;

  

  else

  

  this LeftSubNode Append(subNode);

  

  

  // 向右追加

  public void AppendRight(Node subNode)

  

  if (this RightSubNode == null)

  

  this RightSubNode = subNode;

  

  else

  

  this RightSubNode Append(subNode);

  

  

  // 结点显示自己的数据

  public void ShowData()

  

  Console WriteLine( Data= this Data);

  

  

  // Binary Tree类

  class Tree

  

  // 根结点

  public Node Root get; set;

  // 以某结点为起点 插入结点

  public void Insert(Node newNode)

  

  if (this Root == null)

  

  this Root = newNode;

  

  else

  

  this Root Append(newNode);

  

  

  // 重载 默认以根结点为起点插入

  public void MidTravel()

  

  this MidTravel(this Root);

  

  // 中序遍历(递归)

  public void MidTravel(Node node)

  

  if (node LeftSubNode != null)

  

  this MidTravel(node LeftSubNode);

  

  node ShowData();

  if (node RightSubNode != null)

  

  this MidTravel(node RightSubNode);

  

  

  

  class Program

  

  static void Main(string[] args)

  

  Tree tree = new Tree();

  tree Insert(new Node Data = );

  tree Insert(new Node Data = );

  tree Insert(new Node Data = );

  tree Insert(new Node Data = );

  tree Insert(new Node Data = );

  tree MidTravel();

  Console Read();

  

  

cha138/Article/program/net/201311/11814

相关参考

知识大全 树 - 二叉树的遍历 (二)

  遍历序列  遍历二叉树的执行踪迹  三种递归遍历算法的搜索路线相同(如下图虚线所示)  具体线路为  从根结点出发逆时针沿着二叉树外缘移动对每个结点均途径三次最后回到根结点  >  遍历序列  (

知识大全 数据结构之二叉树的遍历

二叉树遍历的基本概念   遍历(Traversal)是指沿着某条搜索路线依次对树中每个结点均做一次且仅做一次访问  从二叉树的递归定义可知二叉树是由三个基本单元组成根结点左子树和右子树因此若能依次遍历

知识大全 二叉树的遍历

遍历概念  所谓遍历(Traversal)是指沿着某条搜索路线依次对树中每个结点均做一次且仅做一次访问访问结点所做的操作依赖于具体的应用问题  遍历是二叉树上最重要的运算之一是二叉树上进行其它运算之基

知识大全 树 - 二叉树的遍历 (一)

  遍历概念  所谓遍历(Traversal)是指沿着某条搜索路线依次对树中每个结点均做一次且仅做一次访问访问结点所做的操作依赖于  具体的应用问题  遍历是二叉树上最重要的运算之一是二叉树上进行其它

知识大全 数据结构 6.2.3 后序遍历二叉树

  希赛教育计算机专业考研专业课辅导招生  希赛教育计算机专业考研专业课辅导视频  希赛教育计算机考研专业课在线测试系统  后序遍历二叉树  若二叉树为空则空操作否则  ()后序遍历左子树  ()后序

知识大全 数据结构 6.2.1 先序遍历二叉树

  希赛教育计算机专业考研专业课辅导招生  希赛教育计算机专业考研专业课辅导视频  希赛教育计算机考研专业课在线测试系统  先序遍历二叉树  若二叉树为空则空操作否则  ()访问根结点  ()先序遍历

知识大全 数据结构 6.2.2 中序遍历二叉树

  希赛教育计算机专业考研专业课辅导招生  希赛教育计算机专业考研专业课辅导视频  希赛教育计算机考研专业课在线测试系统  中序遍历二叉树  若二叉树为空则空操作否则  ()中序遍历左子树  ()访问

知识大全 数据结构 6.4 后序遍历复制二叉树

  希赛教育计算机专业考研专业课辅导招生  希赛教育计算机专业考研专业课辅导视频  希赛教育计算机考研专业课在线测试系统  后序遍历复制二叉树的操作即为先分别复制已知二叉树的左右子树然后生成一个新的根

知识大全 数据结构考研分类复习真题 第六章 树和二叉树 (三)[20]

  .由二叉树的前序遍历和中序遍历序列能确定唯一的一棵二叉树下面程序的作用是实现由已知某二叉树的前序遍历和中序遍历序列生成一棵用二叉链表表示的二叉树并打印出后序遍历序列请写出程序所缺的语句  #def

知识大全 数据结构考研分类复习真题 第六章 树和二叉树 (四)[13]

  .设某二叉树的前序遍历序列为:ABCDEFGGI中序遍历序列为:BCAEDGHFI  ()试画出该二叉树  ()写出由给定的二叉树的前序遍历序列和中序遍历序列构造出该二叉树的算法  ()设具有四个