用非递归的方法遍历二叉树
2013-02-25 20:05
274 查看
void treenumber(treelink *t) //按序号遍历二叉树 { queuelink *q = queuecreate(); //创建一个队列 queuedata temp; printf("%d ", t->data); //打印根节点数据 queueenter(q, t); //先将根节点入队 while(queueempty(q) == 0) //第一次因为根节点入队,队肯定不为空 { temp = queuedelete(q); //出队,将“根”出队 if(temp->data*2 <= N) //判断temp是否存在左子树,如果条件成立,则存在左子树 { printf("%d ", temp->lchild->data); //打印左子树 queueenter(q, temp->lchild); //将左子树入队 } if(temp->data*2+1 <= N) //判断temp是否存在右子树,如果条件成立,则存在右子树 { printf("%d ", temp->rchild->data); //打印右子树 queueenter(q, temp->rchild); //将右子树入队 } } printf("\n"); }
版权所有:华清远见讲师牛利兵
相关文章推荐
- c++实现二叉树的先序遍历,中序遍历,后序遍历(递归方法)及运行实例结果
- 二叉树的几种遍历的方法(后序遍历的另外一种递归实现还需要思考)
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
- 二叉树递归与非递归遍历的方法
- 用递归方法对二叉树进行先序、中序和后序遍历
- 数据结构——使用非递归方法后序遍历二叉树
- Java实现二叉树的前序、中序、后序、层序遍历(递归方法)
- 【二叉树5】前中后遍历二叉树的递归和非递归方法
- 二叉树的高度 java 利用递归和层次遍历两种方法
- 二叉树非递归遍历方法总结
- 二叉树的先序、中序以及后序遍历(递归与非递归方法)
- 二叉树的遍历方法及递归实现
- 非递归和递归方法遍历二叉树
- C++实现二叉树非递归遍历方法实例总结
- C++实现二叉树前序中序后续遍历的非递归方法总结
- 二叉树的建立、三种(递归、非递归)遍历方法
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
- 数据结构学习——非递归方法遍历二叉树
- 非递归遍历二叉树的方法