二叉树的四种遍历 (六个方法递归 非递归都有 包含二叉树的创建java方法)
2018-03-12 11:30
465 查看
public class BitNode { String data; BitNode lchild; BitNode rchild; public void setNode(String data, BitNode lc, BitNode rc) { this.data = data; lchild = lc; rchild = rc; } static int counter = 0; public BitNode createBiTree(BitNode root, String[] a, int i) { if (i < a.length) { BitNode lchild = new BitNode(); BitNode rchild = new BitNode(); root.data = a[i]; root.lchild = createBiTree(lchild, a, ++counter); root.rchild = createBiTree(rchild, a, ++counter); } return root; } public void PreOrder(BitNode node) { if (node != null) { System.out.print(node.data); PreOrder(node.lchild); PreOrder(node.rchild); } } public void PreOrder1(BitNode root){ Stack<BitNode> stack=new Stack(); if(root!=null){ stack.push(root); } while (!stack.empty()){ BitNode node=stack.pop(); System.out.print(node.data); if (node.rchild!=null) stack.push(node.rchild); if (node.lchild!=null) stack.push(node.lchild); } } public void AfeOrder(BitNode node) { if (node != null) { AfeOrder(node.lchild); AfeOrder(node.rchild); System.out.print(node.data); } } public void zxOrder(BitNode node){ if(node!=null){ zxOrder(node.lchild); System.out.print(node.data); zxOrder(node.rchild); } } public void zzOrderfDiGui(BitNode node){ Stack<BitNode> stack=new Stack<BitNode>(); while (node!=null || !stack.isEmpty()){ while (node!=null){ stack.push(node); node=node.lchild; } if(!stack.isEmpty()){ BitNode node1=stack.pop(); System.out.print(node1.data); node1=node1.rchild; } } } public void ccOrder(BitNode root){ Queue<BitNode> queue =new ArrayDeque<BitNode>(); if (root !=null) queue.offer(root); while (!queue.isEmpty()){ BitNode node =queue.poll(); System.out.print(node.data); if (node.lchild!=null) queue.offer(node.lchild); if (node.rchild!=null) queue.offer(node.rchild); } }
相关文章推荐
- 二叉树的高度 java 利用递归和层次遍历两种方法
- Java实现二叉树的前序、中序、后序、层序遍历(非递归方法)
- C++之二叉树的创建、查找、四种次序的周游遍历方法以及内存的释放
- 大话数据结构(七)——二叉树创建与遍历(递归、非递归)的java实现
- 二叉树(一):二叉树的创建以及三种遍历方法的递归实现
- java实现二叉树的创建及三种递归遍历
- 用c语言创建一颗二叉树,用递归方法实现对其进行先序、中序和后序遍历的操作。
- 二叉树先中后序遍历(递归、非递归方法)、层序遍历 Java实现
- Java实现二叉树的前序、中序、后序、层序遍历(递归方法)
- java实现的二叉树(前序、中序、后序)递归和非递归遍历,包含层序遍历
- 二叉树的高度 java 利用递归和层次遍历两种方法
- java创建二叉树以及8种遍历方法
- java 创建二叉树 前序、中序、后续 递归遍历树 和 非递归遍历,递归求树高,递归求树节点数
- java之二叉树的创建和递归遍历
- Java创建二叉树及其遍历的递归和非递归实现
- Java实现二叉树的前序、中序、后序遍历(递归方法)
- java实现二叉树的创建及5种遍历方法(总结)
- 二叉树(2)二叉树创建的3种方法,二叉树的递归遍历,二叉树的销毁
- Java完全二叉树的创建与四种遍历方法分析
- java二叉树的创建,遍历及其他方法