2018.10.12

数据结构

自由树

自由树是一个连通的,无回路的无向图。

令G=(V,E)为一个无向图。下面的表述是等价的。

1)        G是自由树。

2)        G中任意两个顶点由唯一一条简单路径得到。

3)        G是连通的,但从E中去掉任何边后得到的图都是非连通的。

4)        G是无回路的,且|E|=|V|-1。

5)        G是连通的,且|E|=|V|-1。

6)        G是无回路的,但添加任何边到E中得到的图包含回路。

二叉树

在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。

二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。

二叉树的第i层至多有2^(i-1)个结点;

深度为k的二叉树至多有2^k-1个结点;(等比数列1+2+4+…+2^(k-1) = 2^k-1)。

对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0 = n2 + 1。

树和二叉树的三个主要差别:

1)  树的结点个数至少为1,而二叉树的结点个数可以为0;

2)  树中结点的最大度数没有限制,而二叉树结点的最大度数为2;

3)  树的结点无左、右之分,而二叉树的结点有左、右之分。

满二叉树

一棵深度为k,且有2^k-1个节点的树是满二叉树。

另一种定义:除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。

这两种定义是等价的。

从树的外形来看,满二叉树是严格三角形的,大家记住下面的图,它就是满二叉树的标准形态:

所有内部节点都有两个子节点,最底一层是叶子节点。

性质

1)        如果一颗树深度为h,最大层数为k,且深度与最大层数相同,即k=h;

2)        它的叶子数是: 2^(h-1)

3)        第k层的结点数是: 2^(k-1)

4)        总结点数是: 2^k-1 (2的k次方减一)

5)        总节点数一定是奇数。

6)        树高:h=log2(n+1)。

完全二叉树

完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。

若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h 层所有的结点都连续集中在最左边,这就是完全二叉树。

(大家好好理解一下上面两个定义,是等价的~~)

满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。

下面是完全二叉树的基本形态:

完全二叉树的性质:

1)        深度为k的完全二叉树,至少有2^(k-1)个节点,至多有2^k-1个节点。

2)        树高h=log2n + 1。

对满二叉树、完全二叉树总结点及树高的总结:

操作系统

进程和线程的区别

进程:是所有操作系统并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。

线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。

  • 一个程序至少一个进程,一个进程至少一个线程,一个进程拥有的线程数是变化的,将进程细化为线程是为了更好的实现并发处理与资源共享。
  • 单道批处理系统中由于 CPU 与外设是完全串行的工作方式,因此系统资源利用率低

网络基础

不应发送ICMP差错报文的几种情况:

1.对ICMP差错报文,不再发送ICMP差错报告报文。

2.对第一个分片的数据报片的所有后续数据报片,都不发送ICMP差错报告报文

3.对具有多播地址的数据报,都不发送ICMP差错报告报文

4.对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报,不发送ICMP差错报告报文

数据库

关系的约束条件也称为关系的数据完整性规则。它是对关系的一些限制和规定。包括实体完整性、参照完整性和用户定义完整性。  

实体完整性:这条规定的现实意义是,关系模型对应的是现实世界的数据实体,而关键字是实体惟一性的表现,没有关键字就没有实体,所有关键字不能是空值。这是实体存在的最基本的前提,所以称之为实体完整性。  

参照完整性:参照完整性规则也可称为引用完整性规则。这条规则是对关系外部关键字的规定,要求外部关键字的取值必须是客观存在的,即不允许在一个关系中引用另一个关系不存在的元组。  

用户自定义完整性:由用户根据实际情况,对数据库中数据的内容所作的规定称为用户定义的完整性规则。通过这些限制,数据库中接受符合完整性约束条件的数据值,不接受违反约束条件的数据,从而保证数据库的数据合理可靠。

1、非空约束(Not Null Constraint) 在添加那个表 userinfo,在id、name后面都添加了not null,就是有些列不能把它设为空。

2、唯一约束(Unique Constraint) 一个唯一约束并不包括一个NULL值。直接在字段定义后加入UNIQUE即可定义该唯一约束。 1) 一个表只能创建一个主键约束,但一个表可以根据需要对不同的列创建若干unique约束

2)主键字段不允许为null ,unique允许为空 3)一般创建主键约束时,系统自动产生簇索引,unique约束自动产非簇索引 

3、检查约束(The Check Clause) 通过在定义数据库表里,在字段级或者是在表级加入的检查约束,使其满足特定的要求。 

4、主键约束(Primary Key Constraint) 其实主键约束就是一张表只能建立一个主键约束,其实就是唯一约束+非空约束。

5、外健约束( Foreign Key Constraint) Foreign Key Constraint主要是确保同一个表或者不同表之间的引用完整性,所以必须引用一个PRIMARY KEY或者UNIQUE约束,用户必须在应用表上具有REFERENCES权限;一个表中最多可以有31个外部键约束; 在临时表中,不能使用外部键约束; 主键和外部键的数据类型必须严格匹配 。

猜你喜欢

转载自blog.csdn.net/weixin_38472038/article/details/83034185