文章分类 -  突破程序员基本功的16课

摘要:排序二叉树: 排序二叉树是一种特殊结构的二叉树,通过它可以非常方便的对树中所有节点进行排序和检索。 排序二叉树要么是一棵空二叉树,要么是具有以下性质的二叉树: 若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值 若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值 它的左、右子树也 阅读全文
posted @ 2017-03-13 17:05 guodaxia 阅读(1421) 评论(0) 推荐(0) 编辑
摘要:创建哈夫曼树 创建哈夫曼树,可以按照如下步骤进行: 1、根据给定的n个权值{w1,w2,...wn}构造n棵二叉树的集合F={T1,T2,...Tn},F集合中每棵二叉树都只有一个根节点 2、选取F集合中两棵根节点的权值最小的树作为左、右子树以构建一棵新的二叉树,且将新的二叉树的根节点的权值设为左、 阅读全文
posted @ 2017-03-13 14:44 guodaxia 阅读(173) 评论(0) 推荐(0) 编辑
摘要:树和二叉树 树代表一种非线性的数据结构,如果一组数据节点之间存在复杂的一对多关联时,程序就可以考虑使用树来保存这组数据了。 树的定义和基本术语 计算机世界的树,是从自然界实际的树抽象而来的,它指的是N个有父子关系的节点的有限集合。对于这个有限的节点集合而言,它满足如下条件: 当N = 0时,该节点集 阅读全文
posted @ 2017-03-13 11:10 guodaxia 阅读(190) 评论(0) 推荐(0) 编辑
摘要:栈和队列 对线性表增加一些额外的限制和约束,例如,去除普通线性表中通过索引访问数据元素的功能,去除可以在任意位置添加、删除元素的功能,改成只允许在线性表某段添加、删除元素,这时候普通线性表就会变为两种特殊的线性表:栈和队列。 栈 Stack,一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性 阅读全文
posted @ 2017-03-10 15:40 guodaxia 阅读(142) 评论(0) 推荐(0) 编辑
摘要:排序概论 假设含有n个记录的序列为{R1,R2,...Rn},其相应的关键字序列为{K1,K2,...Kn}。将这样的记录重新排序为{Ri1,Ri2,...Rin},使得相应的关键字值满足条件Ki1<=Ki2<=...<=Kin,这样一种操作称为排序。 通常来说,排序的目的是快速查找 对于一个排序算 阅读全文
posted @ 2017-03-06 17:52 guodaxia 阅读(144) 评论(0) 推荐(0) 编辑
摘要:应用程序中的数据大致有如下4类基本的逻辑结构: 集合:数据元素之间只有“同属于一个集合”关系。 线性结构:数据元素之间存在一个对一个的关系。 树性结构:数据元素之间存在一个对多个的关系。 图状结构或网状结构:数据元素之间存在多个对多个的关系。对于数据不同的逻辑结构,计算机在物理磁盘上通常有2种物理存 阅读全文
posted @ 2017-03-06 16:44 guodaxia 阅读(145) 评论(0) 推荐(0) 编辑
摘要:流程控制的陷阱: switch语句陷阱: default分支会永远执行吗? 只有前面的分支都没有执行或者没有break,return等终止的时候default语句才执行。 public static void main(String[] args){ char s = 'B'; switch(s){ 阅读全文
posted @ 2017-03-06 12:17 guodaxia 阅读(113) 评论(0) 推荐(0) 编辑
摘要:关于字符串的陷阱: String java = new String("疯狂java"); 创建了2个字符串对象,一个是“疯狂java”这个直接量对应的字符串对象,一个是由new String()返回的字符串对象。 对于java程序中的字符直接量,JVM会使用一个字符串池来保存它们:第一次使用某个字 阅读全文
posted @ 2017-03-06 11:36 guodaxia 阅读(91) 评论(0) 推荐(0) 编辑
摘要:程序远通过new关键字创建java对象,即视为java对象申请内存空间,Jvm会在对内存中为每个对象分配空间;当一个java对象失去引用时,JVM的垃圾回收机制会自动清除它们,并且回收它们所占的内存空间。 对象在内存中的状态: 将jvm内存中对象引用理解成一种有向图,把线程对象当成有向图的定点。顶点 阅读全文
posted @ 2017-03-05 18:52 guodaxia 阅读(387) 评论(0) 推荐(0) 编辑
摘要:1、set和Map的关联之处 Set代表无序,不可重复的集合,Map代表由多个key-value对组成的集合,Map集合类似于传统的关联数组。表面上相似性很少,实际上Map和Set之间莫大关联,可以说Map是Set的扩展。 Map是一个关联数组,但是如果将value看成key的附属,捆绑在一起。 将 阅读全文
posted @ 2017-03-03 18:11 guodaxia 阅读(134) 评论(0) 推荐(0) 编辑
摘要:要点: 实例变量属于java对象 类变量属于类本身 实例变量的初始化细节 类变量的初始化细节 子类构造器调用父类构造器 避免在构造器钟访问子类的实例变量 避免在构造器钟调用被子类重写的方法 java继承对成员变量和方法的区别 父、子实例的实例变量的内存分配机制 父、子类的类变量的内存分配 final 阅读全文
posted @ 2017-03-01 16:13 guodaxia 阅读(152) 评论(0) 推荐(0) 编辑
摘要:java是静态语言,java数组是静态的,数组在初始化之后,数组的长度是不可变的。数组必须初始化才可以使用。初始化就是为数组对象元素分配内存空间,并为每个数组元素指定初始值。 初始化两种方式: 静态初始化:初始化时指定数组每个元素的初始值,系统决定长度 动态初始化:初始化时指定长度,系统分配初始值 阅读全文
posted @ 2017-02-16 18:27 guodaxia 阅读(83) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示