java中关于树的代码 java树形

java编打出5行圣诞树,求教每一步详细思想 。下面是代码按照你的要求加详细注释的圣诞树Java程序如下:(编程思想在注释中说明)
public class ShengDanShu2 {
//这个程序的编程思想是利用对for循环变量i的控制达到一层循环代替双层循环的目的
【java中关于树的代码 java树形】public static void main(String[] args) {
intn=5;//初始化打印圣诞树层数变量n
inta=0;//初始化打印前置空格数变量a
intb=0;//初始化打印星号数变量b
for(int i=1;i =n;i++){//打印n层圣诞树
if(a!=(n-i)){//如果前置空格数不等于n-i
System.out.print(" "); //打印一个空格
a++;//前置空格数加一
i=i-1;//i变量减一目的是固定住i变量不变直到a==n-i
}else if(b!=(2*i-1)){//如果星号数不等于2*i-1
System.out.print("*");//打印一个星号
b++;//星号数加一
i=i-1;//i变量减一目的是固定住i变量不变直到b==2*i-1
}else if(a==(n-i)b==(2*i-1)){//当以上两个条件都满足时,换行初始化a和b为0
System.out.println();//打印换行
a=0;//对新的一行重新初始化前置空格数变量a
b=0;//对新的一行重新初始化打印星号数变量b
//这里没有控制for循环的i变量减一,因为这时i变量加一,开始新一行 。
}
}
}
}
运行结果:
*
***
*****
*******
*********
java新手种树代码看不懂import java.util.*;
class Tree {//这是一个类
int height;
Tree() {//这是类的构造方法,可以理解创建类时候的初始化
prt("Planting a seedling");
height = 0;
}
Tree(int i) {//这个也是类的构造方法带有参数而已
prt("Creating new Tree that is "
+ i + " feet tall");
height = i;
}
void info() {//这个就是类定义的方法,在主函数中可以调用
prt("Tree is " + height
+ " feet tall");
}
void info(String s) {//同上,只不过带有参数
prt(s + ": Tree is "
+ height + " feet tall");
}
void prt(String s) {//输出方法
System.out.println(s);
}
}
public class moxing2 {
public static void main(String[] args) {
for(int i = 0; i5; i++) {
Tree t = new Tree(i);//这里就是调用的类的构造方法(带有参数的那个)
t.info();
t.info("overloaded method");
}
// Overloaded constructor:
new Tree();
}
}
说明生活中遇到的二叉树,用java实现二叉树. (求源码,要求简练、易懂 。非常满意会额外加分)import java.util.ArrayList;
// 树的一个节点
class TreeNode {
Object _value = https://www.04ip.com/post/null; // 他的值
TreeNode _parent = null; // 他的父节点,根节点没有PARENT
ArrayList _childList = new ArrayList(); // 他的孩子节点
public TreeNode( Object value, TreeNode parent ){
this._parent = parent;
this._value = https://www.04ip.com/post/value;
}
public TreeNode getParent(){
return _parent;
}
public String toString() {
return _value.toString();
}
}
public class Tree {
// 给出宽度优先遍历的值数组,构建出一棵多叉树
// null 值表示一个层次的结束
// "|" 表示一个层次中一个父亲节点的孩子输入结束
// 如:给定下面的值数组:
// { "root", null, "left", "right", null }
// 则构建出一个根节点,带有两个孩子("left","right")的树
public Tree( Object[] values ){
// 创建根
_root = new TreeNode( values[0], null );
// 创建下面的子节点
TreeNode currentParent = _root; // 用于待创建节点的父亲
//TreeNode nextParent = null;
int currentChildIndex = 0; // 表示 currentParent 是他的父亲的第几个儿子

推荐阅读