线索化二叉树
线索化二叉树
前言:
对于线索化二叉树来说,他的后序线索化二叉树的遍历是其最难的地方,需要很多的辅助节点
对于中序、前序线索化二叉树相对来说比较简单。
Node节点类的代码:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364public class Node { public int id; public String name; public Node right; public Node left; /** * l 作用 :标注left节点,若有值则为 0 无值,但经过序列化复制后为 1 * r 作用 :标注right节点,若有值则为 0 无值,但经过序列化复制后为 1 */ public int l; public int r; public Node parent; //用于后序序列化遍历时使用 ...
浅识Spring AOP
Spring AOP
引言(just I think): 因为java是面向对象编程,而面向对象是纵向继承机制,无法集中注意力到核心代码中,所以我们需要调用其他的机制来解决非核心代码的包装,将其从核心代码块中解耦出来
首先我们从spring官网了解一下他们对AOP思想的介绍
官网地址:docs.spring.io/spring-fram…
面向方面编程 (AOP) 通过提供另一种思考程序结构的方式来补充面向对象编程 (OOP)。OOP 中模块化的关键单元是类,而在 AOP 中,模块化的单元是方面 。方面使关注点模块化,例如跨越多种类型和对象的事务管理。(此类关注点在 AOP 文献中通常称为横切关注点。)
Spring 的关键组件之一是AOP 框架。虽然 Spring IoC 容器不依赖于 AOP,这意味着您不需要使用 AOP,但 AOP 补充了 Spring IoC 以提供非常强大的中间件解决方案。
具体概念1***AOP(Aspect Oriented Programming)是一种设计思想,是软件设计领域中的面向切面编程,它是面 向对象编程的一种补充和完善,它以通过 ...
Linux操作系统学习
linux操作系统Linux的目录结构:
树状图解
vi / vim的学习什么是vi/ vim,为什么我们需要学习原因:
鸟哥的原因
所有的Unix Like 系统都会内建vi 文书编辑器,其他的文书编辑器则不一定会存在;
很多个别软体的编辑介面都会主动呼叫vi (例如未来会谈到的crontab , visudo , edquota等指令);
vim 具有程式编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程式设计;
因为程式简单,编辑速度相当快速。
有太多Linux 上面的指令都预设使用vi 作为资料编辑的介面,所以你必须、一定要学会 vi ,否则很多指令你根本就无法操作呢!
什么是vi / vim:
Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
连 vim 的官方网站 (www.vim.org/) 自己也说 vim 是 ...
MyBatis中的动态SQL技术
MyBatis 之 动态SQL技术引言:
动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。
使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。
如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元素可能会感觉似曾相识。在 MyBatis 之前的版本中,需要花时间了解大量的元素。借助功能强大的基于 OGNL 的表达式,MyBatis 3 替换了之前的大部分元素,大大精简了元素种类,现在要学习的元素种类比原来的一半还要少。
这里我们使用的表为t_emp 对应的实体类名为Emp
字段: emp_name, emp_id ,age ,gender 对应的属性名 : empName , empId , age ,gender
First : if 标签i ...
浅谈SpringMVC
浅识SpringIOC
小小了解一下 Spring 家族
官网地址:spring.io/
项目列表:spring.io/projects
Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。
Spring 框架是一个开源的 Java 平台,它最初是由 Rod Johnson 编写的,并且于 2003 年 6 月首 次在 Apache 2.0 许可下发布。
Spring 是轻量级的框架,其基础版本只有 2 MB 左右的大小。
Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应 用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使用,通过启用基于 POJO 编程模型来促进良好的编程实践
通过上面的粗略介绍 ,我们可以简单的了解一下Spring家族的厉害之处下面就是我们今天学习的重点
Spring IOC( Inversion of Control )反转控制
First : ...