首页 > 其他 > 详细

二叉树 非递归遍历

时间:2017-04-12 02:00:01      阅读:120      评论:0      收藏:0      [点我收藏+]
  1. /**
  2. * 非递归 中序遍历
  3. * **/
  4. public void InOrderTreeWalk(BSTreeNode<T> root, Action<BSTreeNode<T>> func) {
  5. if (root == null) {
  6. return;
  7. }
  8. Stack<BSTreeNode<T>> stack = new Stack<BSTreeNode<T>>((int)(2 * Math.Log(Count + 1)));
  9. BSTreeNode<T> current = root;
  10. while (current != null) {
  11. stack.Push(current);
  12. current = current.left;
  13. }
  14. while (stack.Count != 0) {
  15. current = stack.Pop();
  16. func(current);
  17. BSTreeNode<T> node = current.right;
  18. while (node != null) {
  19. stack.Push(node);
  20. node = node.left;
  21. }
  22. }
  23. }





二叉树 非递归遍历

原文:http://www.cnblogs.com/xiejunzhao/p/6697048.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!