求一个遍例树的例子,谢谢! 求一个遍例树的例子,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 通过循环自己方法的方法就叫递归,意思就是你的函数在使用过程种调用自己来处理同样方法以达到目录显示.while(条件){ if(符合条件){ 循环自己 }else{ 继续}} 多的话用ajax技术,csdn右侧菜单就是 static void InOrder(BinNode T){ if(T!=null) { // 如果二叉树非空 InOrder(T.getLchild()); System.out.print(T.getData()); // 访问结点:也可以用其它的方法访问它 InOrder(T.getRchild()); }} // InOrder 中序遍历二叉树,若要改为先序或后序,改一下访问节点的所处位置即可~ class TreeNode //{ TreeNode rightChild = null,leftChild = null; int value; TreeNode() { value = 0; } TreeNode(int arg) { value = arg; } }class TREE { TreeNode root=null; TREE() { root=null; } public void AddNode(int num) { AddNode(num,root); } private void AddNode(int num,TreeNode baseNode) { if(root==null) root = new TreeNode(num); else { if(num<=baseNode.value){ if(baseNode.leftChild!=null) AddNode(num,baseNode.leftChild); else baseNode.leftChild=new TreeNode(num); } else { if(baseNode.rightChild!=null) AddNode(num,baseNode.rightChild); else baseNode.rightChild=new TreeNode(num); } } } public void postOrder(TreeNode T){ if(T!=null){ System.out.println(T.value); postOrder(T.leftChild); postOrder(T.rightChild); } } public void inOrder(TreeNode T) { if(T!=null) { inOrder(T.leftChild); System.out.println(T.value); inOrder(T.rightChild); } } public void lastOrder(TreeNode T) { if(T!=null) { lastOrder(T.leftChild); lastOrder(T.rightChild); System.out.println(T.value); } } } public class TestTree{ public static void main(String[] args){ TREE t=new TREE(); t.AddNode(30); t.AddNode(40); t.AddNode(15); t.AddNode(45); t.AddNode(8); System.out.println("postOrder:"); t.postOrder(t.root); System.out.println("inOrder:"); t.inOrder(t.root); System.out.println("lastOrder:"); t.lastOrder(t.root); } } class TreeNode //结点类型class TREE //树类型 public void AddNode(int num) //按中序遍历的大小顺序插入数据其后三个方法分别是先/中/后根序遍历应该很容易看懂的,就不多写注释了哈~ 一个scala的链接 求一个流水编号的算法 如何删除list中的重复值 怎样获取Graphics画出来的图片 怎样删除JFrame的标题栏咖啡杯图标? 求教大家一个算法 一个小问题? 高分求助!!! 在使用RMI时遇到的大问题! j2se调用打印机相关链接代码 看下有什么结果 各位大侠帮帮忙 jfreechart实现曲线图,怎么显示曲线上数据点的数据值?----急 公司打算在开源项目wildfire + spark IM的基础上二次开发,有经验的朋友给些建议!
while(条件){
if(符合条件){
循环自己
}else{ 继续}
}
{
if(T!=null) { // 如果二叉树非空
InOrder(T.getLchild());
System.out.print(T.getData()); // 访问结点:也可以用其它的方法访问它
InOrder(T.getRchild());
}
} // InOrder
中序遍历二叉树,若要改为先序或后序,改一下访问节点的所处位置即可~
{
TreeNode rightChild = null,leftChild = null;
int value;
TreeNode()
{
value = 0;
}
TreeNode(int arg)
{
value = arg;
}
}class TREE
{
TreeNode root=null;
TREE()
{
root=null;
}
public void AddNode(int num)
{
AddNode(num,root);
} private void AddNode(int num,TreeNode baseNode)
{
if(root==null)
root = new TreeNode(num);
else
{
if(num<=baseNode.value){
if(baseNode.leftChild!=null)
AddNode(num,baseNode.leftChild);
else
baseNode.leftChild=new TreeNode(num);
}
else {
if(baseNode.rightChild!=null)
AddNode(num,baseNode.rightChild);
else
baseNode.rightChild=new TreeNode(num);
}
}
} public void postOrder(TreeNode T){
if(T!=null){
System.out.println(T.value);
postOrder(T.leftChild);
postOrder(T.rightChild);
}
} public void inOrder(TreeNode T)
{
if(T!=null) {
inOrder(T.leftChild);
System.out.println(T.value);
inOrder(T.rightChild);
}
} public void lastOrder(TreeNode T)
{
if(T!=null) {
lastOrder(T.leftChild);
lastOrder(T.rightChild);
System.out.println(T.value);
}
}
}
public class TestTree{
public static void main(String[] args){
TREE t=new TREE();
t.AddNode(30);
t.AddNode(40);
t.AddNode(15);
t.AddNode(45);
t.AddNode(8);
System.out.println("postOrder:");
t.postOrder(t.root);
System.out.println("inOrder:");
t.inOrder(t.root);
System.out.println("lastOrder:");
t.lastOrder(t.root);
}
}
class TREE //树类型
public void AddNode(int num) //按中序遍历的大小顺序插入数据其后三个方法分别是先/中/后根序遍历应该很容易看懂的,就不多写注释了哈~