本文将使用两种展示方式打印一颗二叉树,效果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
8
├── 12
│ ├── 14
│ │ ├── 20
│ │ │ └── 15
│ │ └── 13
│ └── 10
│ ├── 11
│ └── 9
└── 4
├── 6
│ ├── 7
│ └── 5
└── 2
├── 3
└── 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
                 /----- 20
| \----- 15
/----- 14
| \----- 13
/----- 12
| | /----- 11
| \----- 10
| \----- 9
8
| /----- 7
| /----- 6
| | \----- 5
\----- 4
| /----- 3
\----- 2
\----- 1
阅读全文 »

jsDelivr 是 ProspectOne 开发的公共开源 CDN(Content Delivery Network),专注于性能,可靠性和安全性。每个人均可免费使用,没有带宽限制。jsDelivr 是唯一由中国政府签发并具有有效 ICP 许可证的公共 CDN,并且直接在中国大陆拥有数百个地点。

jsDelivr 有一个十分好用的功能,它可以加速 Github 仓库的文件访问,借助 jsDelivr 我们可以搭建一个稳定快速、高效免费的图床。

阅读全文 »

在使用 Hexo + NexT 搭建个人博客的过程中一直有个问题没有解决,直到今天才找到了解决方法。问题就是在展示同一张图片中,caption出现了两次,如图:

阅读全文 »

Git 子模块(Git submodules)允许你将 git repo 保留为另一个 git repo 的子目录。Git 子模块只是在特定时间快照上对另一个 repo 的引用。Git 子模块使 Git repo 能够合并和跟踪外部代码的版本历史。

阅读全文 »

大多数人有时会需要在同一台机器上管理多个 github 账号,本文以管理两个 github 账号为例,记录了配置 git 的过程,方便下次遇到相同问题时,能节省处理时间。

阅读全文 »

tmux-logo

tmux 是一个终端复用器(terminal multiplexer),它使你能够轻松地在多个终端程序之间来回切换,同时你还可以脱离它们(它们将在后台继续运行),然后在另一个终端窗口重新连接它们。

tmux 提升工作效率的两个主要功能:

  • 窗口分割。在一个终端窗口中,可以随意进行水平或垂直分割,让你在一个窗口中运行多个独立的终端实例,这样你就无需打开多个终端窗口了。通过简单的组合键,你可以轻松在多个独立运行的终端实例间进行切换。

  • 基于会话的访问控制。在使用 SSH 工作的情况下,tmux 能避免工作现场丢失。假设在你执行某条命令的过程中,因为某些不可抗的因素(如网络问题)导致连接断开,这时你可能很难确定刚才的命令是否执行成功;又或者当你处一个较深层次的目录位置时,若 SSH 连接断开,你不得不重新进入到之前的工作目录。如果使用了 tmux,就可以在 SSH 重新连接后,连接到 tmux 之前的 session,这样就可以回到原来的工作环境。

阅读全文 »