en造数据结构与算法C# 二叉树的顺序存储和前中后序遍历

二叉树的序号和索引区别 

 

二叉树的顺序存储代码

我用的是List表,只要是线性表就都能实现二叉树

public class Tree<T> : MonoBehaviour
{
    private List<T> bitTree = new List<T>();

    //添加顺序存储方法
    public void AddTree(T[] values){
        for(int i = 0; i < values.Length; i++){
            bitTree.Add(values[i]);
            }
    }
}

 二叉树的前中后序遍历代码

前序特点:

就是先当前节点(如果从根节点开始),再左节点再右节点

中序特点:

先左,再当前,最后右

后序特点:

先左,再右,最后当前

    //顺序遍历二叉树
    //前序
    public void Preorder(int index)
        {
        if (index >= bitTree.Count)
            return;

        Debug.Log(bitTree[index]);
         int LeftNode = 2*index+1;
        int  RightNode = 2*index+2;
        Preorder(LeftNode);
        Preorder(RightNode);
    }
    //中序
    public void MiddleOrder(int index)
        {
        if (index >= bitTree.Count)
            return;
        int LeftNode = 2 * index + 1;
        int RightNode = 2 * index + 2;
        MiddleOrder(LeftNode);
        Debug.Log(bitTree[index]);
        MiddleOrder(RightNode);
    }
    //后序
    public void AfterOrder(int index) {
        if (index >= bitTree.Count)
            return;
        int LeftNode = 2 * index + 1;
        int RightNode = 2 * index + 2;
        AfterOrder(LeftNode);
        AfterOrder(RightNode);
        Debug.Log(bitTree[index]);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值