zoukankan      html  css  js  c++  java
  • C#获取二叉树深度及分层遍历二叉树

    尝试了一下用C#写了一下二叉树的相关算法:

    代码
            #region 获取二叉树深度
            
    static int z, d = 0;    //z用于记录遍历到某节点时的深度,d用于记录最大深度
            static int GetTreeDep(TreeNode node)
            {
                z
    ++;
                
    if (d < z)
                    d 
    = z;
                
    if (node.leftNode != null)
                {
                    GetTreeDep(node.leftNode);
                    z
    --;
                }
                
    if (node.rightNode != null)
                {
                    GetTreeDep(node.rightNode);
                    z
    --;
                }
                
    return d;
            }
            
    #endregion


            
    #region 分层遍历二叉树
             
    static ArrayList al = new ArrayList();
            
    static ArrayList RecursiveTreeByLevel(TreeNode node)
            {
                k
    ++;
                
    if (al.Count < k)
                {
                    al.Add(node.nodeName);
                }
                
    else
                {
                    al[k 
    - 1+= node.nodeName;
                }

                
    if (node.leftNode != null)
                {
                    RecursiveTreeByLevel(node.leftNode);
                    k
    --;
                }
                
    if (node.rightNode != null)
                {
                    RecursiveTreeByLevel(node.rightNode);
                    k
    --;
                }
                
    return al;
            }
            
    #endregion
  • 相关阅读:
    vue使用axios调用api接口
    vue引用echarts
    C# 倒计时,显示天,时,分,秒。时间可以是从数据库捞出来
    DataGridView 控件操作大全 (内容居中显示,右键绑定菜单)
    Oracle使用row_number()函数查询时增加序号列
    Oracle 相关操作SQL
    oracle rac切换到单实例DG后OGG的处理
    oracle dg库因为standby_file_management参数导致应用停止
    oracle rac与单实例DG切换
    oracle rac搭建单实例DG步骤(阅读全篇后再做)
  • 原文地址:https://www.cnblogs.com/jiajinyi/p/1656525.html
Copyright © 2011-2022 走看看