当前位置: 移动技术网 > IT编程>开发语言>c# > C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法

C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法

2019年07月18日  | 移动技术网IT编程  | 我要评论

本文实例讲述了c#使用前序遍历、中序遍历和后序遍历打印二叉树的方法。分享给大家供大家参考。具体实现方法如下:

public class binarytreenode
{
 public binarytreenode left { get; set; }
 public binarytreenode right { get; set; }
 public int data { get; set; }
 public binarytreenode(int data)
 {
  this.data = data;
 }
}
public enum treetraversal
{
  preorder,
  inorder,
  postorder
}
public void printtree(binarytreenode root, treetraversal treetraversal)
{
  action<int> printvalue = delegate(int v)
  {
   console.write(v + " ");
  };
  switch (treetraversal)
  {
   case treetraversal.preorder:
    preordertraversal(printvalue, root);
    break;
   case treetraversal.inorder:
    inordertraversal(printvalue, root);
    break;
   case treetraversal.postorder:
    postordertraversal(printvalue, root);
    break;
   default: break;
  }
}
public void preordertraversal(action<int> action, binarytreenode root)
{
  if (root == null)
   return;
  action(root.data);
  preordertraversal(action, root.left);
  preordertraversal(action, root.right);
}
public void inordertraversal(action<int> action, binarytreenode root)
{
  if (root == null)
   return;
  inordertraversal(action, root.left);
  action(root.data);
  inordertraversal(action, root.right);
}
public void postordertraversal(action<int> action, binarytreenode root)
{
  if (root == null)
   return;
  postordertraversal(action, root.left);
  postordertraversal(action, root.right);
  action(root.data);
}

希望本文所述对大家的c#程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网