📄 binarytree.java
字号:
/**
*
*
*
*/
package dreamer.util;
public class BinaryTree<T>
{
private T data;
private BinaryTree left;
private BinaryTree right;
public BinaryTree(T elem)
{
data = elem;
}
public boolean setLeft(BinaryTree leftNode)
{
if(left==null)
{
left = leftNode;
return true;
}
return false;
}
public boolean setRight(BinaryTree rightNode)
{
if(right==null)
{
right = rightNode;
return true;
}
return false;
}
public BinaryTree getLeft()
{
return left;
}
public BinaryTree getRight()
{
return right;
}
public T get()
{
return data;
}
public void set(T elem)
{
data = elem;
}
public int depth()
{
int leftDepth = 0;
int rightDepth = 0;
if(left==null && right==null)
return 1;
if(left!=null)
leftDepth = left.depth()+1;
if(right!=null)
rightDepth = right.depth()+1;
if(leftDepth>rightDepth)
return leftDepth;
return rightDepth;
}
public int level(T elem)
{
if(data.equals(elem))
return 1;
int leftLevel = 0;
int rightLevel = 0;
if(left!=null)
leftLevel = left.level(elem);
if(right!=null)
rightLevel = right.level(elem);
if(leftLevel>=1)
return leftLevel+1;
if(rightLevel>=1)
return rightLevel+1;
return 0;
}
public boolean contains(T elem)
{
if(data.equals(elem))
return true;
if(left!=null && left.contains(elem))
return true;
if(right!=null && right.contains(elem))
return true;
return false;
}
public int count()
{
int leftCount = 0;
int rightCount = 0;
if(left!=null)
leftCount = left.count();
if(right!=null)
rightCount = right.count();
return leftCount+rightCount+1;
}
public void traverse()
{
System.out.print(data+" ");
if(left!=null)
left.traverse();
if(right!=null)
right.traverse();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -