Android(安卓)数据结构之 二叉树
16lz
2021-01-24
最近抽时间看了下二叉树,下面把二叉树的相关遍历方式共享下
1.定义树结构类
public class TreeNode { public TreeNode left; public TreeNode getLeft() { return left; } public void setLeft(TreeNode left) { this.left = left; } public TreeNode getRight() { return right; } public void setRight(TreeNode right) { this.right = right; } public int getVal() { return val; } public void setVal(int val) { this.val = val; } public TreeNode right; public int val ;}
2.创建二叉树
public void test(){ TreeNode treeNode = new TreeNode(); treeNode.setVal(0); TreeNode treeNode1 = new TreeNode(); treeNode1.setVal(1); TreeNode treeNode2 = new TreeNode(); treeNode2.setVal(2); treeNode.setLeft(treeNode1); treeNode.setRight(treeNode2); TreeNode treeNode3 = new TreeNode(); treeNode3.setVal(3); TreeNode treeNode4 = new TreeNode(); treeNode4.setVal(4); treeNode1.setLeft(treeNode3); treeNode1.setRight(treeNode4); TreeNode treeNode5 = new TreeNode(); treeNode5.setVal(5); TreeNode treeNode6 = new TreeNode(); treeNode6.setVal(6); treeNode2.setLeft(treeNode5); treeNode2.setRight(treeNode6); TreeNode treeNode7 = new TreeNode(); treeNode7.setVal(7); TreeNode treeNode8 = new TreeNode(); treeNode8.setVal(8); treeNode3.setLeft(treeNode7); treeNode3.setRight(treeNode8); //前序 preOrderTraverse(treeNode); //中序 inOrderTraverse(treeNode); //后序 postOrderTraverse(treeNode); } /*二叉树的前序遍历递归算法*/ private void preOrderTraverse(TreeNode treeNode){ if(treeNode==null)return; Log.e("MainActivity","preOrderTraverse--val:"+treeNode.val); preOrderTraverse(treeNode.left); preOrderTraverse(treeNode.right); } /*二叉树的中序遍历递归算法*/ void inOrderTraverse(TreeNode treeNode) { if(treeNode==null)return; inOrderTraverse(treeNode.left); /*中序遍历左子树*/ Log.e("MainActivity","inOrderTraverse--val:"+treeNode.val); inOrderTraverse(treeNode.right); /*最后中序遍历右子树*/ } /*二叉树的后序遍历递归算法*/ void postOrderTraverse(TreeNode treeNode) { if(treeNode==null)return; postOrderTraverse(treeNode.left); /*先后遍历左子树*/ postOrderTraverse(treeNode.right); /*在后序遍历右子树*/ Log.e("MainActivity","postOrderTraverse---val:"+treeNode.val); }
更多相关文章
- android递归查找文件
- Android下soap访问webservice
- LocalBroadcastManager详解
- Android触摸事件小小画板(7)
- Android(安卓)SQLite数据库判断某张表是否存在的语句
- android的sd卡上创建目录不显示
- Android(安卓)Audio相关 AudioFlinger类
- 移动安全测试框架MobSF(二):动态分析
- Linux 解决文件名 中文乱码问题