前面我们已经学习了一些线性结构的数据结构和算法,接下来我们开始学习非线性结构的内容. 二叉树 前面显示增.删.查.遍历方法,完整代码在最后面. /** * 为什么我们要学习树结构. * 1.有序数组插入数据项和删除数据项太慢. * 2.链表查找数据太慢. * 3.在树中能非常快速的查找.插入.删除数据,结合了有序数组和链表的优点 * 4.暂时还不知道 */ 结点打包类 public class BinaryTree { //数据项(对象什么都可以) public long data; //左孩子…
=== 注释:此人博客对很多个数据结构类都有讲解-并加以实例 Java API —— ArrayList类 & Vector类 & LinkList类Java API —— BigDecimal类Java API —— BigInteger类Java API —— Calendar类Java API —— DateFormat类Java API —— Date类Java API —— HashMap类 & LinkedHashMap类Java API —— JDK5新特性Java…
前序遍历——根 左 右 中序遍历——左 根 右 后序遍历——左 右 根 //================================================= // File Name : BinaryTree //------------------------------------------------------------------------------ // Author : Common //类名:Stack_BinaryTree //属性: //方法: cl…
//二叉树系统 public class BinarySystem { public static void main(String[] args) { BinaryDomain root = null; //定义头结点 new BinaryAction().manage(root); } } public class BinaryDomain { private int value; //二叉树值 BinaryDomain left; //左结点 BinaryDomain right; //右…
二叉树的遍历分为深度优先遍历(DFS)和广度优先遍历(BFS) DFS遍历主要有: 前序遍历 中序遍历 后序遍历 一.递归实现DFSNode.java: public class Node { private Object data; Node richild; Node lechild; public Object getData() { return data; } public void setData(Object data) { this.data = data; } public N…
Node节点: public class Node { public long data; public String sData; public Node leftChild; public Node rightChild; public Node(long data,String sData) { this.data = data; this.sData = sData; } } Tree: public class Tree { public Node root; public void…
一.查找最大值 // 查找最大值 public static Node maxNode() { Node node = root; Node maxNode = node; while (node != null) { maxNode = node; node = node.getRichild(); } return maxNode; } 二.查找最小值 // 查找最小值 public static Node minNode() { Node node = root; Node minNode…
Java数据结构和算法(四)赫夫曼树 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 赫夫曼树又称为最优二叉树,赫夫曼树的一个最主要的应用就是赫夫曼编码. 一.赫夫曼编码 can you can a can as a can canner can a can. 1.1 定长编码 99 97 110 32 121 111 117 32 99 97 110 32 97 32 99 97 110 32 97 115 32 97…
从这里始将要继续进行Java数据结构的相关讲解,Are you ready?Let's go~~ Java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的几章,我们将会分别讲解这几种数据结构,主要也是通过Java代码的方式来讲解相应的数据结构. 今天要讲解的是:Java线性结构 对于之前普通树和二叉树的讲解请参考地址: 今天我们将要进行的是Java树中的哈夫曼树(HaffmanTree),哈夫曼编码(HaffmanTreeCode),排序二叉树 和…
从这里开始将要进行Java数据结构的相关讲解,Are you ready?Let's go~~ Java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的几章,我们将会分别讲解这几种数据结构,主要也是通过Java代码的方式来讲解相应的数据结构. 今天要讲解的是:Java线性结构 Java数据结构之树形结构 之前我们前几章学习的都是Java数据结构的线性结构,都是一对一的,从现在开始我们将要学习Java的树形结构. 树对于我们来普通Java程序员而言,…