摘要: 二叉树是树的简化版,除根节点之外的所有节点都有一个父节点,任意节点都可以最多有一个左子节点和右子节点。 二叉树的遍历是非常重要的算法,主要分为深度优先遍历和广度优先遍历。 其中深度优先遍历按照访问根节点和左右子节点的访问顺序,分为先根遍历(preorder),中根遍历(inorder)和后根遍历(p 阅读全文
posted @ 2017-03-09 11:10 Mars.wang 阅读(1107) 评论(0) 推荐(0)
摘要: 数组array是基本的数据结构,但它的功能有限,线性表list可以认为是扩展了功能的数组。可以自动调整大小。添加和删除元素不需要其他元素移位。 根据指针数量和指向的不同,线性表分为单向链表、双向链表和循环链表。 一、单向链表 单项链表有一个头指针,指向链表的第一个元素,除最后一个元素外,其它元素都有 阅读全文
posted @ 2017-03-09 11:08 Mars.wang 阅读(366) 评论(0) 推荐(0)
摘要: 数组Array是最基本的数据结构,在内存中为一段定长连续内存,很多编程语言都有实现。 一、一维数组 下面代码实现了一维数组和它的遍历。 clear并非清空数组,而是采用具体值对数组进行初始化。 二、二维数组 二维数组的构造基于一维数组Array,它可以看做是一个以行数为size的一维数组,区别在于数 阅读全文
posted @ 2017-03-09 11:07 Mars.wang 阅读(630) 评论(0) 推荐(0)
摘要: 1)精辟阐述:可以将 ArrayList想象成一种“会自动扩增容量的Array”。2)Array([]):最高效;但是其容量固定且无法动态改变; ArrayList: 容量可动态增长;但牺牲效率;3)建议:基于效率和类型检验,应尽可能使用Array,无法确定数组大小时才使用ArrayList!不过当 阅读全文
posted @ 2017-03-09 09:57 Mars.wang 阅读(70130) 评论(1) 推荐(4)
摘要: java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。 1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道str 阅读全文
posted @ 2017-03-09 09:43 Mars.wang 阅读(346) 评论(0) 推荐(0)