问题
假设以二叉链表存储的二叉树中,每个结点所含数据元素均为单字母。 要求实 现二叉树的横向显示问题,如下图所示打印结果。
问题分析
(1) 二叉树的横向显示应是二叉树竖向显示的90°旋转。分析上图可知,这种树形打印格式要求先打印右子树,再打印根,最后打印左子树,按由上而下顺序看,其输出的结点序列为:CFEADB,这恰为逆中序遍历。所以横向显示二叉树的算法为先右子树、再跟结点、再左子树的RDL结构。
(2)在这种输出格式中,结点的左右位置与结点的深度有关,故算法中设置了一个表实当前跟结点层深的参数,以控制输出结点的左、右位置,每当递归进层时层深参数加1。
算法描述
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tree
{
class TreeNode
{
T data;
TreeNode LChrild;
TreeNode RChirld;
public T Data { get => data; set => data = value; }<