本文共 943 字,大约阅读时间需要 3 分钟。
二叉树类代码:
package binarytree;import linkqueue.LinkQueue;public class BinaryTree { class Node { public Object data; public Node lchild; public Node rchild; public Node(Object data) { this.data = data; this.lchild = null; this.rchild = null; } } //根节点 private Node root = null; private Node node = null; /** * 创建树 * * 以完全二叉树的格式来创建(子树不存在的用0填充), * 对完全二叉树中每一个节点从0开始进行编号, * 那么第i个节点的左孩子的编号为2*i+1,右孩子为2*i+2。 * * */ void createTree(String strtree) { LinkQueue lQueue = new LinkQueue(); lQueue.initQueue(); /** * 完全二叉树中第i层的结点的个数最多为第1到i-1层上所有节点的个数和 * 所以父节点的个数最多为N-1个,N表示节点个数 * */ for(int parentIndex =0; parentIndex
测试代码(以数据结构中表达式a+b*(c-d)-e/f为例):
package binarytree;public class BinaryTreeMain { public static void main(String[] args) { BinaryTree binaryTree = new BinaryTree(); String strtree="- + / a * e f 0 0 b - 0 0 0 0 0 0 0 0 0 0 c d";//0表示没有值的位置 binaryTree.createTree(strtree); binaryTree.print(); }}
运行结果:
转载地址:http://zccia.baihongyu.com/