说到树结构就不得不回顾 链表结构 https://www.cnblogs.com/easyidea/p/13371863.html
如果链表结构中再多一个指针会是什么情况?
是不是像树根一样,这就是 树 数据结构。
class TreeNode
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
growth(root,2); //创建深度为3的树结构
print(root); //打印树结构
}
//通过递归的方式创建树的子节点
static void growth(TreeNode root,int deep){
if(deep==0) return;
TreeNode<Integer> left = new TreeNode<Integer>(deep); //创建左子节点
TreeNode<Integer> right = new TreeNode<Integer>(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
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
E val; //数据 :节点数据
//对象 :引用下一个节点对象。在Java中没有指针的概念,Java中的引用和C语言的指针类似
//用来存放一堆子节点
List<TreeNode> childs
TreeNode(E val){ //构造方法 :构造方法和类名相同
this.val=val; //把接收的参数赋值给当前类的val变量
}
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章