[note] 一阶可导点是极值点的必要条件

我认为这句话的表述不够清晰明确,正确的表述应该是:

设函数处可导,且在处取得极值,则

因为极值的定义是:设函数在点的某邻域内有定义,如果对于去心邻域内任一,有(或),那么就称是函数的一个极大值(或极小值)

所以说,可导函数的极值点必定是它的驻点,函数在它的导数不存在的点处也可能取得极值

[note] 连续函数的和、差、积、商的连续性(连续函数乘以、除以、加减连续函数)

《高等数学第七版》(第一章 函数与极限 -> 第九节 连续函数的运算与初等函数的连续性 -> 一、连续函数的和、差、积、商的连续性)

由函数在某点连续的定义和极限的四则运算法则,立即可以得出下面的定理:
设函数f(x)和g(x)在点x0连续,则他们的和、差、积、商(分母不为0时)都在点x0处连续。

所以连续函数乘以连续函数一定是连续函数~

连续函数加减连续函数也是连续函数~

连续函数除以连续函数之后,去掉分母得零的点,在其余点处仍保持连续性~

[note] 初等函数、代数函数、超越函数、有理函数、无理函数、有理整式、有理分式的概念解释

对应的包含关系如下图:

初等函数:包括代数函数和超越函数。
初等函数是由冥函数、指数函数、对数函数、三角函数、反三角函数与常数经过有限次的有力运算及有限次函数复合所产生,并且能用一个解析式表示。

代数函数:包括有理函数和无理函数。
代数函数是指只包含常数与自变量相互之间有限次的加、减、乘、除、有理指数幂和开方六种运算的函数。

超越函数:与代数函数相反,是指那些不满足任何以多项式方程的函数,即函数不满足以变量自身的多项式为系数的多项式方程。如三角函数、对数函数,反三角函数,指数函数等就属于超越函数。

有理函数:包括有理整式和有理分式。
有理函数是通过多项式的加减乘除得到的函数。

无理函数:对应规律含对自变量的开方运算的代数函数称为无理函数,无理函数通常是自变量包含在根式(通常是最简根式)中的函数。

有理整式:可以认为有理整式即是多项式,对变数字母与数仅限于有限次加、减、乘、乘方运算的代数式,即除式不含变数字母的有理式称为有理整式。

有理分式:有理分式指的是两个多项式的商,具体来说是指分子及分母都是多项式的分式。

 

 

1135. Is It A Red-Black Tree (30)-PAT甲级真题

There is a kind of balanced binary search tree named red-black tree in the data structure. It has the following 5 properties:

(1) Every node is either red or black.
(2) The root is black.
(3) Every leaf (NULL) is black.
(4) If a node is red, then both its children are black.
(5) For each node, all simple paths from the node to descendant leaves contain the same number of black nodes.

For example, the tree in Figure 1 is a red-black tree, while the ones in Figure 2 and 3 are not.

For each given binary search tree, you are supposed to tell if it is a legal red-black tree.

Input Specification:

Each input file contains several test cases. The first line gives a positive integer K (<=30) which is the total number of cases. For each case, the first line gives a positive integer N (<=30), the total number of nodes in the binary tree. The second line gives the preorder traversal sequence of the tree. While all the keys in a tree are positive integers, we use negative signs to represent red nodes. All the numbers in a line are separated by a space. The sample input cases correspond to the trees shown in Figure 1, 2 and 3.

Output Specification:

For each test case, print in a line “Yes” if the given tree is a red-black tree, or “No” if not.

Sample Input:
3
9
7 -2 1 5 -4 -11 8 14 -15
9
11 -2 1 -7 5 -4 8 14 -15
8
10 -7 5 -6 8 15 -11 17
Sample Output:
Yes
No
No

题目大意:给一棵二叉搜索树的前序遍历,判断它是否为红黑树,是输出Yes,否则输出No。

分析:判断以下几点:
1.根结点是否为黑色
2.如果一个结点是红色,它的孩子节点是否都为黑色
3.从任意结点到叶子结点的路径中,黑色结点的个数是否相同
所以分为以下几步:
0. 根据先序建立一棵树,用链表表示
1. 判断根结点(题目所给先序的第一个点即根结点)是否是黑色【arr[0] < 0】
2. 根据建立的树,从根结点开始遍历,如果当前结点是红色,判断它的孩子节点是否为黑色,递归返回结果【judge1函数】
3. 从根节点开始,递归遍历,检查每个结点的左子树的高度和右子树的高度(这里的高度指黑色结点的个数),比较左右孩子高度是否相等,递归返回结果【judge2函数】

注意:终于知道自己PAT考试的时候错在哪了。。。维基百科定义:红黑树(英语:Red–black tree)是一种自平衡二叉查找树。AVL树:在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。所以说红黑树不是一种AVL树,红黑树相对于AVL树来说,牺牲了部分平衡性以换取插入/删除操作时少量的旋转操作,整体来说性能要优于AVL树。而我根据先序遍历直接建树后判断了是否AVL平衡,把判断是否平衡的那段代码注释掉就AC了~