上期提到的__cxa_xxx相关函数的实现离不开libunwind的相关接口,libunwind专门用于平台无关的堆栈展开和错误处理,内部做了很多平台相关的兼容...
为了后续实现关联式容器简单,红黑树的实现中增加一个头结点,因为跟节点必须为黑色,为了 与根节点进行区分,将头结点给成黑色,并且让头结点的 pParent 域指...
递归是学习C语言函数绕不开的一个话题,那什么是递归呢? 递归其实是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。 写一个史上最简单的C语言递归代...
通过旋转可以让树重新变得平衡,并且不会改变二叉搜索树的性质(即左边仍然小,右边仍然大)
计算机科学中,stack 是一种线性的数据结构,只能在其一端添加数据和移除数据。习惯来说,这一端称之为栈顶,另一端不能操作数据的称之为栈底,就如同生活中的一摞书
总结 其实递归程序会不断的展开,在展开的过程中,我们很容易就能发现,在递归的过程中会有重复计算,⽽且递归层次越深冗余计算就会越多。 因为递归有时解决问题可...
计算机科学中,queue 是以顺序的方式维护的一组数据集合,在一端添加数据,从另一端移除数据。习惯来说,添加的一端称为尾,移除的一端称为头,就如同生活中的排队买...
在计算机科学中,链表是数据元素的线性集合,其每个元素都指向下一个元素,元素存储上并不连续
当n≤2时,第n个斐波那契数都是1,当n>2时,第n个斐波那契数就可以通过前两个数相加计算
c语言中的函数就是一个完成某项特定的任务的一段代码,这段代码有特殊的写法和调用方法
type指定的是数组中存放数据的类型,可以是char、short、int 、float
if语句后面不加分号,默认情况下if和else语句后面只能跟一条语句,如果要使用多条语句,可以用{}将想要多条表达的式子放进去
strcmp函数比较两个字符串的大小 大于则返回大于0的数字,小于返回小于0的数字,等于则返回0。
首先查找元素是否在二叉搜索树中,如果不存在,则返回, 否则要删除的结点可能分下面四种情 况:
2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。
C++中的可调用对象:函数指针(类型定义很复杂)、仿函数对象(定义一个类的时候,用的时候有些麻烦,其次不适合统一类型)、lambda(没有类型概念)、包装器
C 语言中定义了一些特定的转义序列,以支持在字符串和字符常量中表示特殊字符。以下是一些常用的合法转义字符:
如果我们不记录左右子树的高度,而是直接把递归写到return里,也是对的,但是它的时间复杂度会变得很大: