您好,欢迎访问一九零五行业门户网

C#分别用前序遍历、中序遍历和后序遍历打印二叉树

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 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 action, binarytreenode root) { if (root == null) return; action(root.data); preordertraversal(action, root.left); preordertraversal(action, root.right); } public void inordertraversal(action action, binarytreenode root) { if (root == null) return; inordertraversal(action, root.left); action(root.data); inordertraversal(action, root.right); } public void postordertraversal(action action, binarytreenode root) { if (root == null) return; postordertraversal(action, root.left); postordertraversal(action, root.right); action(root.data); }
其它类似信息

推荐信息