二叉树使用
来源:互联网 发布:网络编程培训班 编辑:程序博客网 时间:2024/05/16 12:56
package datastructure.tree;public class BinaryTreeTester {public static void testInvalid(String generalList) {try {BinaryTree.createBinaryTree(generalList);}catch (Exception e) {System.out.println(e.getMessage());}}public static void testTreeInfo(BinaryTree bt) {System.out.println("二叉树的广义表表示:" + bt.getGeneralListString());System.out.println("二叉树高度: " + bt.height(bt.getRoot())); System.out.println("二叉树总结点数: " + bt.size(bt.getRoot())); System.out.println("二叉树总叶子结点数: " + bt.leafCounter(bt.getRoot())); System.out.println("二叉树的所有叶子结点: " + bt.listToString(bt.getLeafNodes())); System.out.println("二叉树的所有叶子结点到根的路径: "); bt.printLeafPaths(); System.out.println("二叉树中的一条最长路径: " + bt.listToString(bt.longestPath()));}public static void testTraverse(BinaryTree bt) {System.out.println("二叉树的结点关联表示:"); System.out.println(bt.getNodelinkList());System.out.println("二叉树的先序遍历:"); System.out.println("递归: " + bt.listToString(bt.getPreOrderList(true))); System.out.println("非递归: " + bt.listToString(bt.getPreOrderList(false))); System.out.println("二叉树的中序遍历:"); System.out.println("递归:" + bt.listToString(bt.getInOrderList(true))); System.out.println("非递归:" + bt.listToString(bt.getInOrderList(false))); System.out.println("二叉树的后序遍历:"); System.out.println("递归: " + bt.listToString(bt.getPostOrderList(true))); System.out.println("非递归:" + bt.listToString(bt.getPostOrderList(false))); System.out.println("二叉树的层序遍历:"); System.out.println(bt.listToString(bt.getFloorOrderList()));}public static void testAll(BinaryTree bt) {testTreeInfo(bt);testTraverse(bt);}public static void main(String[] args) {String expression = "-( +(a, *(b, -(c,d))), /(e,f)/t)";// String expression = "b( , %)";BinaryTree bt = null;try { bt = BinaryTree.createBinaryTree(expression); testAll(bt); System.out.println(); System.out.println(" ----------- 根据前序及中序遍历列表构造二叉树 ------------ "); bt = BinaryTree.createBinaryTree("ABCDEFG", "CBEDAFG"); testAll(bt); System.out.println(); System.out.println(" ----------- 根据中序及后序遍历列表构造二叉树 ------------ "); bt = BinaryTree.createBinaryTree("CBEDAFG", "CEDBGFA", true); testAll(bt); System.out.println(); System.out.println("复制二叉树: ********************* "); BinaryTree copy = bt.copyBinaryTree(); testAll(copy); System.out.println("************* 二叉树比较: bt VS copy : ****************** "); System.out.println("bt: " + bt.getGeneralListString()); System.out.println("copy: " + copy.getGeneralListString()); System.out.println("比较广义表表示是否相等? " + bt.getGeneralListString().equals(copy.getGeneralListString())); System.out.println("比较给定二叉树是否全等? " + (bt.equalsTo(copy) ? "是": "否")); testInvalid("A(B(C,D)"); testInvalid("A(B,), C(D)"); testInvalid("A(B(C, D),E),F),)"); testInvalid("A(B)"); testInvalid("AB(C,D)"); bt = BinaryTree.createBinaryTree("A(B(D, ), C(E,F))"); testAll(bt); bt.swapTree(); testAll(bt);}catch (Exception e) {System.out.println(e.getMessage());e.printStackTrace();} }}
0 0
- 使用二叉树排序
- 二叉树使用
- 二叉树基础使用
- 使用C++实现二叉树
- 平衡二叉树的使用
- 使用Graphviz 画二叉树
- 二叉树的基本使用
- 使用graphviz绘制二叉树
- 二叉搜索树---使用迭代器
- 使用pygraphviz画出二叉树
- 使用graphviz画二叉树
- 使用扩展二叉树的方法建立二叉树
- 二叉树的下一个结点(二叉树中序遍历的使用)
- 求二叉树镜像(破坏二叉树和不破坏二叉树使用非递归实现求解二叉树镜像)
- 操作二叉树使用的队列
- 操作二叉树使用的栈
- 不使用栈后序遍历二叉树
- 不使用栈后序遍历二叉树 收藏
- loadrunner Windows资源 添加度量时拒绝访问 MsgId: MMSG-47299
- php apache配置多个网站(即多个虚拟路径)
- 32位处理器内寄存器简介
- Java获取当前类名、方法名
- Bootstrap
- 二叉树使用
- Android字体高度的研究
- 10gen工程师谈MongoDB组合索引的优化
- [ACM] hdu 2857 Mirror and Light (对称点+两条直线的交点)
- IntelliJ IDEA JUnit Generator自动创建测试用例到指定test目录
- android 获取raw 绝对路径
- Java调用XML的方法:DocumentBuilderFactory
- 简单获取java类中的获取名
- 圆形ProgressBar之外的表示进度的图片动画