C#获取二叉树深度及分层遍历二叉树
生活随笔
收集整理的這篇文章主要介紹了
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
?
?
轉載于:https://www.cnblogs.com/jiajinyi/archive/2010/01/26/1656525.html
總結
以上是生活随笔為你收集整理的C#获取二叉树深度及分层遍历二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转:如何求出grid图像每个cell对应
- 下一篇: 【顶】Asp无组件生成缩略图(1)