/images/avatar.jpg

雨临Lewis的博客

Java - 数据结构之树

基本概念

树(Tree)不是线性表,而是一种描述非线性层次关系的数据结构,描述的是一对多的数据结构。

● 结点:Node,有的资料也叫做节点。
● 根结点(Root):没有父结点的结点,一棵树只能有一个根结点。
● 兄弟结点(Siblings):拥有同一个父结点的结点,它们是父结点的子结点。
● 孩子、双亲(Child、Parent):结点的子树的根称为该结点的孩子,相应地,该结点称为孩子的双亲。
● 结点的度(Degree):一个结点所包含的子树的数量,即子结点的数量。
● 树的度:该树所有结点中最大的度。
● 叶子结点(Leaf):树中度为零的结点,也叫终端结点。
● 分支(Branch):至少有一个孩子的结点,也叫非终端结点。
● 祖先(Ancestor):结点的祖先是从根到该结点所经分支上的所有结点。
● 后代(Descendant):以某结点为根的子树中的任一结点都称为该结点的后代。
● 边(Edge):一个结点和另一个结点之间的连接被称为边。
● 路径(Path):连接结点和其后代的结点之间的(结点,边)的序列
● 层次(Level):从根结点开始算,根结点是第一层,依次往下。(也可以把根结点作为第0层)
● 结点的高度(Height of node):该结点和某个叶子之间存在的最长路径上的边的个数。
● 树的高度(Height of tree):树的高度是其根结点的高度。
● 结点的深度(Depth of node):从树的根结点到该结点的边的个数。和高度的区别在于,深度是从根结点开始往下到自身结点;高度是从自身结点往下到叶子结点。
● 树的深度(Depth of tree):树中结点的最大层次。树的高度等于树的深度。
● 无序树:树中任意结点的子结点之间没有顺序关系,这种树称为无序树,也称为自由树。
● 有序树:树中各结点的子结点之间从左到右按一定次序排列的树。
● 森林:n(n>=0)棵互不相交的树的集合。

Hexo系列(2.1) - NexT主题美化与博客功能增强 · 第二章

前言

网上有不少相关的帖子,不过版本会比较旧,而不同版本可能存在代码不同的问题,不过大部分还是大同小异,本系列就不啰嗦重复了,基本只会按照本人所使用的版本以及个人所使用到的内容来进行介绍。

该系列是对我所使用的Next主题进行个性化定制,涉及到js和css等的修改,还有各种插件的使用,包括使用过程中的一些踩坑记录;另外也会对Next主题进行一些写作技巧的介绍与运用,希望能对大家有所帮助。有疑问的朋友可以给我留言,我会尽可能回复O(∩_∩)O

Hugo系列(3.2) - LoveIt主题美化与博客功能增强 · 第三章

前言

本博客使用的是Hugo的LoveIt主题,本文也是基于该主题而写的,不过Hugo的美化步骤应该大同小异,版本如下:

1
2
3
hugo: v0.74.2/extended windows/amd64 BuildDate: unknown

LoveIt: v0.2.10

请注意,本文的所有功能都离不开两个新增加的文件:_custom.scsscustom.js,部分功能还需要jquery,在第一章中会提及如何引入。

另外本文篇幅太长,阅读体验不好,将其进行分章如下:

Hugo系列(3.1) - LoveIt主题美化与博客功能增强 · 第二章

前言

本博客使用的是Hugo的LoveIt主题,本文也是基于该主题而写的,不过Hugo的美化步骤应该大同小异,版本如下:

1
2
3
hugo: v0.74.2/extended windows/amd64 BuildDate: unknown

LoveIt: v0.2.10

请注意,本文的所有功能都离不开两个新增加的文件:_custom.scsscustom.js,部分功能还需要jquery,在第一章中会提及如何引入。

另外本文篇幅太长,阅读体验不好,将其进行分章如下:

Java - 泛型

泛型(Generic)

泛型:把类型明确的工作推迟到创建对象或调用方法时再明确的特殊类型。

参数化类型:把类型当作参数来传递,这意味着参数化类型不能是基本数据类型,需要用对应的包装类来代替。

相关概念:

Spring Data JPA/Hibernate问题汇总

前言

本文基于如下版本的JPA和Hibernate:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
  <version>2.4.0</version>
</dependency>

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-core</artifactId>
  <version>5.4.23.Final</version>
</dependency>

JPA本身提供的Repository功能比较简单,遇到一些复杂的查询无法胜任,这时可以使用第三方的增强库,比如Jinq或者QueryDSL。

docsify快速入门

docsify

根据官方说法,docsify是一个神奇的文档网站生成工具,也可以把它当做一个简易版的静态站点诸如Hexo、Hugo等。当然,它是专门针对文档的,忽然想到了程序员深恶痛绝的就是写API文档……

docsify特性很多,最吸引我的是全文搜索、主题简洁好看、无需构建的纯静态站点。这意味着可以很简单地把写完的文档直接扔到Pages服务上,比如GitHub Pages、Coding Pages等等。

分享一些有趣的代码注释

代马

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
                               _(\_/) 
                             ,((((^`\
                            ((((  (6 \ 
                          ,((((( ,    \
      ,,,_              ,(((((  /"._  ,`,
     ((((\\ ,...       ,((((   /    `-.-'
     )))  ;'    `"'"'""((((   (      
    (((  /            (((      \
     )) |                      |
    ((  |        .       '     |
    ))  \     _ '      `t   ,.')
    (   |   y;- -,-""'"-.\   \/  
    )   / ./  ) /         `\  \
       |./   ( (           / /'
       ||     \\          //'|
       ||      \\       _//'||
       ||       ))     |_/  ||
       \_\     |_/          ||
       `'"                  \_\
                            `'"