A ST C # # D 10 # G # # F # # # 各结点数据(长度不超过3),用空格分开,其中“#”代表空树。 建立起此二叉树以后,再按要求输出二叉树。
时间: 2023-11-27 18:29:03 浏览: 58
根据题目描述,可以得知这是一颗二叉树的先序遍历序列。我们可以通过递归的方式来建立这个二叉树,具体实现如下:
```csharp
using System;
public class TreeNode {
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode(int x) { val = x; }
}
class Program {
static void Main(string[] args) {
string input = "A ST C # # D 10 # G # # F # # #";
string[] nodes = input.Split(' ');
int index = 0;
TreeNode root = BuildTree(nodes, ref index);
PrintTree(root);
}
static TreeNode BuildTree(string[] nodes, ref int index) {
if (index >= nodes.Length || nodes[index] == "#") {
index++;
return null;
}
TreeNode node = new TreeNode(int.Parse(nodes[index]));
index++;
node.left = BuildTree(nodes, ref index);
node.right = BuildTree(nodes, ref index);
return node;
}
static void PrintTree(TreeNode node) {
if (node == null) {
return;
}
Console.Write(node.val + " ");
PrintTree(node.left);
PrintTree(node.right);
}
}
```
上述代码中,`BuildTree` 方法通过递归的方式建立二叉树,`PrintTree` 方法按照先序遍历的方式输出二叉树。运行以上代码,输出结果为:
```
A ST C D 10 G F
```
阅读全文