Java Tree 树 数据结构
标签:root block png public system growth color ring mamicode
说到树结构就不得不回顾 链表结构 https://www.cnblogs.com/easyidea/p/13371863.html
如果链表结构中再多一个指针会是什么情况?
是不是像树根一样,这就是 树 数据结构。
class TreeNode{ //类名 :Java类就是一种自定义的数据结构
E val; //数据 :节点数据
TreeNode left; //对象 :引用下一个节点对象。在Java中没有指针的概念,Java中的引用和C语言的指针类似
TreeNode right; //对象 :引用下一个节点对象。在Java中没有指针的概念,Java中的引用和C语言的指针类似
TreeNode(E val){ //构造方法 :构造方法和类名相同
this.val=val; //把接收的参数赋值给当前类的val变量
}
}
public class Test{
public static void main(String[] args){
TreeNode root = new TreeNode(3); //创建根节点
growth(root,2); //创建深度为3的树结构
print(root); //打印树结构
}
//通过递归的方式创建树的子节点
static void growth(TreeNode root,int deep){
if(deep==0) return;
TreeNode left = new TreeNode(deep); //创建左子节点
TreeNode right = new TreeNode(deep); //创建右子节点
root.left=left;
root.right=right;
growth(left,deep-1); //递归调用
growth(right,deep-1); //递归调用
}
//通过递归的方式打印树结构
static void print(TreeNode root){
if(root==null){
return;
}
System.out.print(root.val);
print(root.left); //递归调用
print(root.right); //递归调用
}
}
如上面的示例构建的是一颗标准的二叉树结构:
当然树的结构还可以是N叉树:数中每个节点的子节点个数相同,子节点个数是多少就叫做 多少叉树。
如下面3叉树:
三叉树节点:
class TreeNode{ //类名 :Java类就是一种自定义的数据结构
E val; //数据 :节点数据
TreeNode left; //对象 :引用下一个节点对象。在Java中没有指针的概念,Java中的引用和C语言的指针类似
TreeNode center; //对象 :引用下一个节点对象。在Java中没有指针的概念,Java中的引用和C语言的指针类似
TreeNode right; //对象 :引用下一个节点对象。在Java中没有指针的概念,Java中的引用和C语言的指针类似
TreeNode(E val){ //构造方法 :构造方法和类名相同
this.val=val; //把接收的参数赋值给当前类的val变量
}
}
当然树的结构还可以是不规则的,如下图所示:
这样的结构怎么表示呢?
下面给出了一种表示方法:
class TreeNode{ //类名 :Java类就是一种自定义的数据结构
E val; //数据 :节点数据
//对象 :引用下一个节点对象。在Java中没有指针的概念,Java中的引用和C语言的指针类似
//用来存放一堆子节点
List childs
TreeNode(E val){ //构造方法 :构造方法和类名相同
this.val=val; //把接收的参数赋值给当前类的val变量
}
}
Java Tree 树 数据结构
标签:root block png public system growth color ring mamicode
原文地址:https://www.cnblogs.com/easyidea/p/13536656.html
评论