随笔分类 -  数据结构

摘要:一、二叉树理解 1、以前学习链表的时候,一个节点只有一个数据;现在学习的二叉树,一个节点好比有三个数据,分别为:根节点数据、左节点数据、右节点数据。 2、这样的比喻对我来说比较好理解。 3、一些示意图:图一是单个,图二是多个连接起来。 图一: 图二: 二、二叉树的代码实现(自己根据思想写的) pub 阅读全文
posted @ 2019-04-09 14:24 math_lin 阅读(227) 评论(0) 推荐(0)
摘要:一、队列的理解 1、像就餐排队一样,先排队的先拿到饭。(先进先出) 2、代码实现的思想,存进去的数据放到最尾部;拿出来的数据,从头部开始拿起。 二、代码实现 1、队列的顺序存储结构方式:(数据都放在一个数组里面,方法的实现是对该数据进行操作) public class ArrayQueue { pr 阅读全文
posted @ 2019-04-04 14:16 math_lin 阅读(228) 评论(0) 推荐(0)
摘要:一、双向链表的示意图 二、java代码实现: /** * 双向链表 * 注:jdk有自带的双向链表,路径是:java.util.LinkedList * @author ljtao3 * @param <T> */ public class DoubleLink { //表头 public DNod 阅读全文
posted @ 2019-04-03 14:25 math_lin 阅读(204) 评论(0) 推荐(0)
摘要:一、理解: 想象一串小袋子,串在一起,一个小袋子代表一个节点,袋子里面可以装东西(数据),这样一个小袋子连接一个小袋子,串起来就像一个单链表。 二、代码实现: (1)、单链表实现的接口,先展示所有需要实现方法 public interface IList { void clear(); boolea 阅读全文
posted @ 2019-03-28 16:59 math_lin 阅读(218) 评论(0) 推荐(0)
摘要:一、思想的应用 1、文件压缩。 2、数据通信。 将数据进行有效编码。 二、哈夫曼树 将一组混乱的数组,排成哈夫曼树,可以分为以下几步: 假设数组为arr ={} 1、先将数组排序,从小到大。 2、数组移除最小的两个数,作为叶子节点,根节点为两数之和,合成一个二叉树。 3、将根节点加入数组,对数组重新 阅读全文
posted @ 2019-03-27 11:04 math_lin 阅读(526) 评论(0) 推荐(0)
摘要:一、对顺序表的说明: 根据代码,将顺序表理解为数组、ArrayList。 二、代码实现: 1、为了方便浏览,先定义一个接口,写上所有的方法。 public interface IList { void clear(); boolean isEmpty(); int size(); Object ge 阅读全文
posted @ 2019-03-19 16:38 math_lin 阅读(259) 评论(0) 推荐(0)