C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法
本文实例讲述了C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法。分享给大家供大家参考。具体实现方法如下:
publicclassBinaryTreeNode { publicBinaryTreeNodeLeft{get;set;} publicBinaryTreeNodeRight{get;set;} publicintData{get;set;} publicBinaryTreeNode(intdata) { this.Data=data; } } publicenumTreeTraversal { PREORDER, INORDER, POSTORDER } publicvoidPrintTree(BinaryTreeNoderoot,TreeTraversaltreeTraversal) { Action<int>printValue=delegate(intv) { Console.Write(v+""); }; switch(treeTraversal) { caseTreeTraversal.PREORDER: PreOrderTraversal(printValue,root); break; caseTreeTraversal.INORDER: InOrderTraversal(printValue,root); break; caseTreeTraversal.POSTORDER: PostOrderTraversal(printValue,root); break; default:break; } } publicvoidPreOrderTraversal(Action<int>action,BinaryTreeNoderoot) { if(root==null) return; action(root.Data); PreOrderTraversal(action,root.Left); PreOrderTraversal(action,root.Right); } publicvoidInOrderTraversal(Action<int>action,BinaryTreeNoderoot) { if(root==null) return; InOrderTraversal(action,root.Left); action(root.Data); InOrderTraversal(action,root.Right); } publicvoidPostOrderTraversal(Action<int>action,BinaryTreeNoderoot) { if(root==null) return; PostOrderTraversal(action,root.Left); PostOrderTraversal(action,root.Right); action(root.Data); }
希望本文所述对大家的C#程序设计有所帮助。