本文实例讲述了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#程序设计有所帮助。
中序遍历二叉树 按完全二叉树的层次遍历给出一棵二叉树的遍历序列(其中用0表示虚结点),要求输出该二叉树的深度及中序遍历该二叉树得到的序列。 输入格式: 首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据首先输入一个正整数n(n≤1000),代表给出的二叉树的结点总数(当然,其中可能包含虚结点)。结点编号均为正整数,且各不相同。 然后输入n个正整数,表示按完全二叉树(即第1层1
为了上课,我必须创建一个状态对象的二叉树,每个状态对象包括一个居民对象的二叉树,这些居民对象组织住在每个州的人。我试图在一个给定的州中搜索最老的居民;然而,居民是按字母顺序组织在树中的,这对我的搜索毫无帮助。因此,我必须遍历整个居民树,更新保存最老的人的节点,并在树被完全遍历后返回它。我已经有了代码的第一部分,但是还停留在如何写递归的剩余部分。 状态树的方法: 然后是公共“包装器”状态树方法:
二叉树遍历崩溃求大神帮我分析分析 以下是我同学的代码可以跑 实在是看不出哪里有什么不同
我在编码挑战中遇到了一个问题。 完整二叉树是一种二叉树,其中除叶节点外的每个节点都有两个子节点,且树的最后一级边高度有叶节点。 您的任务很简单,给定完整二叉树的遍历,请按顺序遍历打印其
//执行顺序遍历的递归方法
我必须使用层次顺序遍历打印二叉树的节点,但以螺旋形式,即不同层次的节点应该以螺旋形式打印。 例如:如果树看起来像: 输出应为 10 5 20 25 15 6 4。 我使用的算法很简单,只是级别顺序遍历的一个小变化。我只是取了一个变量p.if变量等于1,而不是从左到右打印给定级别的顺序,如果是-1,则从右到左打印。 我得到了答案,但在歪斜树的情况下,最坏的情况复杂度可能是O(n^2)。 这个任务能有