3. 假设data = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' };这个是我们要存储的数据,用c#语言代码实现求二叉树的先序遍历,中序遍历和后序遍历。
时间: 2023-12-21 22:30:30 浏览: 24
以下是C#语言代码实现二叉树的先序遍历,中序遍历和后序遍历:
```csharp
using System;
public class Node
{
public char data;
public Node left, right;
public Node(char item)
{
data = item;
left = right = null;
}
}
public class BinaryTree
{
Node root;
BinaryTree()
{
root = null;
}
void printPreorder(Node node)
{
if (node == null)
return;
Console.Write(node.data + " ");
printPreorder(node.left);
printPreorder(node.right);
}
void printInorder(Node node)
{
if (node == null)
return;
printInorder(node.left);
Console.Write(node.data + " ");
printInorder(node.right);
}
void printPostorder(Node node)
{
if (node == null)
return;
printPostorder(node.left);
printPostorder(node.right);
Console.Write(node.data + " ");
}
void printPreorder() { printPreorder(root); }
void printInorder() { printInorder(root); }
void printPostorder() { printPostorder(root); }
public static void Main(string[] args)
{
BinaryTree tree = new BinaryTree();
tree.root = new Node('A');
tree.root.left = new Node('B');
tree.root.right = new Node('C');
tree.root.left.left = new Node('D');
tree.root.left.right = new Node('E');
tree.root.right.left = new Node('F');
tree.root.right.right = new Node('G');
tree.root.left.left.left = new Node('H');
tree.root.left.left.right = new Node('I');
tree.root.left.right.left = new Node('J');
Console.WriteLine("Preorder traversal of binary tree is ");
tree.printPreorder();
Console.WriteLine("\nInorder traversal of binary tree is ");
tree.printInorder();
Console.WriteLine("\nPostorder traversal of binary tree is ");
tree.printPostorder();
}
}
```