package yfTest.shixi;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.SortedSet;
import org.junit.Test;
import sun.misc.Compare;
public class BTree {
public BTNode root;
private char[] c = {'a','b','#','c','#','d'} ;
public static int count = 0;
public void init(){
root =new BTNode(getC());
create(root,c);
}
public void create(BTNode node,char[] c){
char temp ;
node.addLeft(temp=getC());
if(temp != '#'){
create(node.getLeftChild(),c);
}
node.addRight(temp=getC());
if(temp != '#'){
create(node.getRightChild(),c);
}
}
public char getC(){
if(BTree.count<c.length)
return c[BTree.count++];
return '#';
}
@Override
public String toString(){
return root.toString();
}
@Test
public void show(){
init();
System.out.println(root);
Set<Integer> set = new HashSet<Integer>();
set.add(123);
set.add(123);
int[] a ={123,23,43};
System.out.println(set);
}
@Test
public void regexTest(){
String str = "I,.;am;.!;.!;.!eating;.?something";
str=str.replaceAll("\\p{Punct}", " ");
System.out.println(str);
}
}
class BTNode{
public static int Ceng = 1;
private char name;
private BTNode leftChild;
private BTNode rightChild;
public BTNode(char name){
this.name = name;
}
public boolean hasLeft(){
return leftChild != null /*&& !leftChild.getName().equals("#")*/;
}
public boolean hasRight(){
return rightChild != null /*&& !leftChild.getName().equals("#")*/;
}
public BTNode addLeft(char left){
leftChild = new BTNode(left);
return leftChild;
}
public BTNode addRight(char right){
rightChild = new BTNode(right);
return rightChild;
}
public void init(){
}
@Override
public String toString(){
String temp = name+""+BTNode.Ceng+"|";
BTNode.Ceng++;
if(hasLeft()) temp+="L "+leftChild.toString();
if(hasRight()) temp+="R "+rightChild.toString();
BTNode.Ceng--;
return temp;
}
public char getName() {
return name;
}
public BTNode getLeftChild() {
return leftChild;
}
public BTNode getRightChild() {
return rightChild;
}
}
分享到:
相关推荐
二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树
二叉树排序二叉树排序二叉树排序二叉树排序二叉树排序二叉树排序二叉树排序
在二叉树类binarytree中增加一个功能,判断是否为完全二叉树(使用自定义的队列类完成)
1.二叉树的基本操作实现【问题描述】建立一棵二叉树,用递归方法实现二叉树的如下基本操作:(1)按先序序列构造一棵二叉链表表示的二叉树T;(2)对这棵二叉树进行遍历:先序、中序、后序以及层次遍历,分别输出...
二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树二叉树
构造n个(2)叶结点的的完全二叉树(完全二叉树意味着每个分支结点都有2个儿子结点),有多少种构造方法? 注意:不改变n个结点的相对顺序,左右儿子不调换. 例如: 4个叶子节点A1,A2,A3,A4,可构造出如下完全二叉树,共5种。...
本程序提供了二叉树的各种操作:各种遍历,复制,求高度,判断是否为一棵完全二叉树以及计算用二叉树存储的表达式
(2)先序、中序、后序遍历二叉树:递归算法。 (3)中序遍历二叉树:非递归算法(最好也能实现先序,后序非递归算法)。 (4)求二叉树的高度 。 (5)求二叉树的叶子个数。 (6)对于树中每一个元素值为x的结点...
编写算法判别给定二叉树是否为完全二叉树。
中序线索二叉树(建立二叉树,线索化,输出二叉树)
编写程序实现二叉树的如下操作: 1) 建立二叉链表 2) 二叉树的先序、中序、后序遍历 3) 求解二叉树的叶子结点个数 4) 将二叉树中所有结点的左、右子树相互交换 输入: 扩展二叉树先序序列:ab#d##ce###。其中#...
二叉树的基本功能实现,你二叉树的基本功能实现,你二叉树的基本功能实现,你二叉树的基本功能实现,你二叉树的基本功能实现,你二叉树的基本功能实现,你二叉树的基本功能实现,你二叉树的基本功能实现,你二叉树的...
建立一棵二叉树,试编程实现二叉树的如下基本操作: 1. 按先序序列构造一棵二叉链表表示的二叉树T; 2. 对这棵二叉树进行遍历:先序、中序、后序以及层次遍历,分别输出结点的遍历序列; 3. 求二叉树的深度/结点数目...
二叉树模板代码 二叉树 作业习题 二叉树模板代码 二叉树 作业习题 二叉树模板代码 二叉树 作业习题
实现二叉树链表表示的二叉树: 建立一棵二叉树; 按先序、中序和后序遍历二叉树; 按层次遍历; 求一棵二叉树的高度; 交换一棵二叉树的左右子树; 复制一棵二叉树。
编写算法判别给定二叉树是否为完全二叉树,用递归实现
采用先序法建立一棵二叉树,设计求该二叉树的深度,二叉树的数据域类型为字符型, 扩展二叉树的叶子结点用‘#’表示,要求可以求多棵二叉树的深度,当二叉树的深度为0时程序结束。
PHP实现二叉树图
输入共3行:第一行为满二叉树中结点个数n(n<1024);第二行为n个整数,表示二叉树的先序遍历序列;第三行也有n个整数,表示二叉树的中序遍历序列。整数间以空格分割。
1---建立二叉树 2---前序遍历(递归) 3---前序遍历(非递归) 4---中序遍历(递归) 5---中序遍历(非递归) 6---后序遍历(递归) 7---后序遍历(非递归) 8---求树高 9---求叶子总数 10---输出二叉树 11...