摘要: (POSIX定时器) POSIX提供了一套定时器API,通过产生一个sigevent事件,来通知进程事件产生。 创建定时器 #include <signal.h> #include <time.h> int timer_create(clockid_t clockid, struct sigeven 阅读全文
posted @ 2020-11-29 21:34 Sigmun 阅读(967) 评论(0) 推荐(0)
摘要: #include <signal.h> union sigval { int sival_int; void *sival_ptr; }; struct sigevent { int sigev_notify; // 通知类型 int sigev_signo; // 通知信号 union sigva 阅读全文
posted @ 2020-11-29 21:01 Sigmun 阅读(222) 评论(0) 推荐(0)
摘要: 类型推断 auto类型修饰符 在C++11以后,auto关键字能够用于类型推导。当声明语句中有初始化器时,auto能够根据对象的初始化器推断对象的数据类型。 例子: auto a = 123; // int auto b = 123l; // long auto c = 3.14; // doubl 阅读全文
posted @ 2020-11-06 15:04 Sigmun 阅读(149) 评论(0) 推荐(0)
摘要: 我们对一个二叉树进行中序排列后可以获得二叉树的中序序列。但这种信息只能在遍历的动态过程中才能获得。如果我们在每个节点中加入前驱和后继指针倒是可以直接保存下每个节点的前驱和后继。 但这样一来对于有n个节点的二叉树又增加了2n个指针,对空间的使用效率又降低了。如何解决这个问题? 二叉树的线索化 我们可以 阅读全文
posted @ 2019-11-20 21:11 Sigmun 阅读(291) 评论(0) 推荐(0)
摘要: Huffman树又称为最优树,是一种带权路径最短的树。 一、带权路径 在一棵树中我们把一个节点到另一个节点之间的通路叫做路径,在路径中每经过一个节点路径的长度就加一。如果对一个节点附上权值,则该节点的带权路径长为该节点到树根的路径长与权的乘积。 在一棵有$n$个叶子节点的树中,令每个叶子节点的权为$ 阅读全文
posted @ 2019-11-20 20:38 Sigmun 阅读(257) 评论(0) 推荐(0)
摘要: 二叉树 二叉树是一种特殊的树形结构,其每个节点恰好有两颗可以为空的子树(左子树和右子树),子树左右顺序不能颠倒。 1.二叉树的性质 1. 一颗二叉树有$n$个元素,$n 0$,它有$n 1$条边。 1. 在二叉树的第$i$层上,至多有$2^{i 1}$个元素。 1. 一颗高度为$h$的树,其最少有$ 阅读全文
posted @ 2019-11-02 18:19 Sigmun 阅读(528) 评论(0) 推荐(0)
摘要: 链表 数组作为基本的数据结构被广泛使用在各种程序中,其查找十分方便,使用也十分简单。但要对其进行插入和删除操作,花费却十分昂贵。比如,对一个长度为n的数组在k位置进行插入操作,首先要把k到n 1位置的数据整体后移,而删除k则要把k+1到n 1 的位置整体前移。为了避免插入和删除的开销,我们可以使用不 阅读全文
posted @ 2019-10-19 13:44 Sigmun 阅读(400) 评论(0) 推荐(0)