说在前面

本文是王道数据结构P191的10个算法例题归纳,二叉树的存储结构为二叉链表。

1
2
3
4
5
typedef struct BiTNode
{
ElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
阅读全文 »

问题描述

每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括$9$位数字、$1$位识别码和$3$位分隔符,其规定格式如“$x-xxx-xxxxx-x$”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如$0-670-82162-4$就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如$0$代表英语;第一个分隔符“$-$”之后的三位数字代表出版社,例如$670$代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。
  识别码的计算方法如下:
  首位数字乘以$1$加上次位数字乘以$2$……以此类推,用所得的结果$mod 11$,所得的余数即为识别码,如果余数为$10$,则识别码为大写字母$X$。例如ISBN号码$0-670-82162-4$中的识别码$4$是这样得到的:对$067082162$这$9$个数字,从左至右,分别乘以$1,2,…,9$,再求和,即$0×1+6×2+……+2×9=158$,然后取$158 mod 11$的结果$4$作为识别码。
  编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“$Right$”;如果错误,则输出是正确的ISBN号码。

阅读全文 »

题目背景

一个未经初始化的变量,里面存储的值可能是任意的。因此直接使用未初始化的变量,比如将其赋值给另一个变量,并不符合一般的编程逻辑。代码中出现这种情况,往往是因为遗漏了初始化语句、或是打错了变量名。对代码中使用了未初始化变量的语句进行检查,可以方便地排查出代码中的一些隐秘 Bug。

阅读全文 »

问题提出

首先这个报错大概长这个样子,一般出现在部署到远程库时:

1
error: failed to push some refs to 'git@github.com:xxx/xxx.git

这个错误大概有2个原因:

  1. 网络错误(在我大天朝的网络下出现什么玄学问题很正常的)

  2. 远程库分支内容与本地内容存在双边不同步差异,系统总是先拉取再推送,但是拉取总是失败

阅读全文 »

Vue的介绍

官网教程:https://cn.vuejs.org/v2/guide/installation.html

掘金:https://juejin.im/

cdn(在线的网络连接资源):https://www.bootcdn.cn/

Vue的简介

 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层(指的是前端页面,即MTV中的T—>template模板)。

阅读全文 »

Professor Diogenes has n supposedly identical integrated-circuit chips that in principle are capable of testing each other. The professor’s test jig accomodates two chips at a time. When the jig is loaded, each chip tests the other and reports whether it is good or bad. A good chip always reports accurately whether the other chip is good or bad, but the professor cannot trust the answer of a bad chip. Thus, the four possible outcomes of a test are as follows:

Chip A saysChip B saysConclusion
B is goodA is goodboth are good, or both are bad
B is goodA is badat least one is bad
B is badA is goodat least one is bad
B is badA is badat least one is bad
阅读全文 »

介绍

二叉树的四种遍历方式:

  • 二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次。
    四种遍历方式分别为:先序遍历、中序遍历、后序遍历、层序遍历。
阅读全文 »

海明码(也叫汉明码)具有一位纠错能力。本文以1010110这个二进制数为例解释海明码的编码和校验方法。

阅读全文 »

问题提出

一个Github Pages只能绑定一个自定义域名,但在已经绑定了一个域名的情况下,想使用多个域名访问到托管到Github Pages的页面时该怎么办呢?

踩坑经历

Github Pages对应的Repository下有一个CNAME文件,它包含了你的自定义域名,但是只能添加一条记录,不能添加两条域名记录。

直接在域名DNS服务商进行DNS配置也是不可以的,否则会出现“404 There is not a GitHub Pages site here.”的错误信息。

阅读全文 »

Aplayer是一个基于JavaScript的播放器插件,而MetingJs则是基于Aplayer插件封装好的插件,开箱即用。

起初在博客中添加Aplayer播放器时,是准备把它加入到侧边栏中,但是效果并不好。播放器控件可能会有显示不完整的问题,并且在呼出与关闭侧边栏时,会有卡顿的现象。对于我现在使用的Next主题来说,将播放器置于页面左下角是比较好的选择。下面介绍两种播放器的布局方案,并提供实现全局效果(切换页面而不打断音乐播放)的方案。

阅读全文 »
0%