- 博客(5)
- 收藏
- 关注
原创 对于APUE中信号的 #define SIG_ERR (void(*)())-1 的理解
在学习 APUE 的信号章节中,我们知道 Linux 中最简单的信号接口如下:#include <signal.h>void (*signal(int signo, void (*func)(int)))(int);//返回值:若成功,返回以前的信号处理配置;若出错,返回 SIG_ERR参数:signo:上面给出的信号名。func:常量值 SIG_IGN、常量 SIG_DEL 或当接到此信号后要调用的函数的地址。如果指定 SIG_IGN,则向内核表示忽略此信号(但是信号 SIGK
2021-09-08 23:46:36 397
原创 线索二叉树的详细实现(C++)
线索二叉树概述二叉树虽然是非线性结构,但二叉树的遍历却为二叉树的结点集导出了一个线性序列。如果我们希望很快找到某一结点的前驱或后继,但不希望每次都要对二叉树遍历一遍,这就需要把每个结点的前驱和后继信息记录下来。为了做到这一点,可在原来的二叉链表中增加一个前驱指针域(pred)和一个后继指针域(succ),分别指向该结点在某种次序下的前驱结点和后继结点,但是这种方法将会导致很多结点中有没有利用的空指针,先看下面的例子。比如:现在有一个结点数为 n 的二叉树,采用二叉链表形式存储。对于每个结点均有指向左右
2021-09-06 00:02:29 3192
原创 ProtoBuf详解(二)编码风格
本片文章主要介绍 protobuf 的编码风格,这些都是 google 官方推荐的 proto 文件编码风格,遵循这些风格编写 proto 风格,可以使团队的 ProtoBuf 消息定义和风格保持一致,有利于阅读和维护。protobuf 的风格可能会随着不同版本变化,有可能会看到 .proto 文件以不同的风格编写,但是最好采用当前的最佳风格,请参考官方 Protobuf Style Guide。文件的标准格式每行的长度保持在 80 个字符以内。使用 2 个空格缩进。(注:这里实际使用 4 个空格
2021-09-05 17:26:56 637
原创 二叉树的详细实现(C++)
关于二叉树的概念,已经在树的基本概念中详细描述,这里不做过多赘述。本文将对二叉树进行详细实现,采用 C++ 语言。二叉树结点类型定义template <typename T>struct BinTreeNode{ T data; //结点中存储的数据 BinTreeNo
2021-09-05 17:02:17 9479
原创 树的基本概念
树型结构,不同于线性数据结构,比较适合用于描述分支结构的数据,这种数据之间可能有祖先和后代的关系。在计算机中树型结构应用非常广泛,例如在文件系统和数据库系统中,树是组织信息的重要形式之一。树的定义树是一种数据结构,是由 n(n ≥ 1)个有限节点组成的一个具有层次关系的集合。树的示意图如下:之所以被叫做树,是因为看起来像一棵倒过来的树,也就是根朝上,叶朝下。从上图中可以看出它具有如下特点:每个节点有零个或者多个子节点,树是一个递归的定义,即树的定义中又用到了树的概念。没有父节点的节点称
2021-09-05 16:32:53 1333
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人