0.0真粗略笔记,过一遍脑子,顺便练练打字~.0

文章目录

  • 1.计算机系统
    • 1.1 计算机发展历程
    • 1.2 计算机体系结构
    • 1.3 计算机基本系统组成
    • 1.4 计算机硬件系统
      • 1.4.1 中央处理器(CPU)
      • 1.4.2 存储器
    • 1.5 计算机工作原理
      • 1.5.1 计算机指令格式
    • 1.6 数据的内部表示
      • 1.6.1 计算机中的数据及其存储单位
      • 1.6.2 进位计数制及其转换
        • 1.6.2.1 进位计数制
        • 1.6.2.2 转化
      • 1.6.3 无符号数和带符号数
      • 1.6.4 机器数的定点和*浮点*
    • 1.7 操作系统
      • 1.7.1 CPU管理(进程管理)
        • 1.7.1.1 程序的并发执行
        • 1.7.1.2 进程(管理)
  • 2.数据结构与算法
    • 2.1 算法
    • 2.2 数据结构的基本概念
      • 2.2.1 数据结构
      • 2.2.2 数据结构的表示
      • 2.2.3 线性结构和非线性结构
    • 2.3 线性表及其顺序存储结构
      • 2.3.1 线性表(线性结构)
      • 2.3.2 线性表的顺序存储结构
    • 2.4 栈和队列
      • 2.4.1 栈及其基本运算
      • 2.4.2 队列及其基本计算
    • 2.5 线性链表
    • 2.6 树与二叉树
      • 2.6.1 树
      • 2.6.2 二叉树
    • 2.7 查找
    • 2.8 排序
  • 3.程序设计基础
    • 3.1 程序设计风格
    • 3.2 结构化程序设计
    • 3.3 面向对象方法
  • 4.软件工程基础
  • 5.数据库设计基础
    • 5.1 数据库
    • 5.2 数据模型
    • 5.3 关系代数
      • 5.3.1 关系模型
      • 5.3.2 关系代数

1.计算机系统

1.1 计算机发展历程

目前公认的第一台电子数字计算机是ENIAC(Electronic Numerical Integrator And Calculator),于1946年在美国宾夕法尼亚大学研制成功。

计算机发展的四个阶段:
1946年到20世纪50年代后期,电子管计算机时代;
20世纪50年代初期到20世纪60年代中期,晶体管计算机时代;
20世纪60年代初期到20世纪70年代初期,中小规模集成电路计算机时代;
20世纪70年代初期期至今,大规模和超大规模集成电路计算机。

1.2 计算机体系结构

ENIAC优点是可以大大提高计算速度,但有两大缺点:
1.没有存储器;
2.用布线接板进行控制,电路连接繁琐耗时。

美籍匈牙利数学家冯·诺伊曼(被誉为“现代电子计算机之父”)为首的研究小组1946年提出“存储程序控制”,并开始研制EDVAC(Electronic Discrete Variable Automatic Computer)。1951年,EDVAC问世。

EDVAC的特点:
1.在计算机内部,数据和程序采用二进制数;
2.程序和数据存放在存储器中;
3.计算机硬件由五大部分组成:运算器,存储器,控制器,输入设备,输出设备

1.3 计算机基本系统组成

计算机系统由硬件系统和软件系统组成,硬件系统由主机和外部设备组成,软件系统由系统软件和应用软件组成。

1.4 计算机硬件系统

1.4.1 中央处理器(CPU)

计算运算和控制核心,包括控制器运算器,用于解释计算机指令和处理软件中的数据。
1.运算器对数据进行加工处理
2.控制器负责分析程序规定的指令,控制并协调输入输出操作或对主存储器的访问。
3.寄存器是高速存储区域,用于暂时存放参与运算的数据和运算结果。
4.主要技术性能指标:
字长是指CPU一次能处理的二进制数据的位数;
主频是指CPU的时钟频率,数字愈大代表CPU执行指令的速度愈快;
运算速度通常指CPU每秒所能执行的加法指令数目,常用百万次/秒。

1.4.2 存储器

存储程序和数据的部件
分类:
ROM(只读存储器):其中信息只能读出不能写入,断电后信息不消失。
RAM(随机存储器):其中信息可以读也可以写,写入后原来数据被擦除,断电后数据丢失,且无法恢复。

1.5 计算机工作原理

计算机执行程序时要将需要执行的相关程序和数据先放入内存中,在执行时CPU当前程序指针寄存器的内容取出指令并执行,然后再取出下一条指令并执行,如此循环直至程序结束。

1.5.1 计算机指令格式

指令是计算机完成某个基本操作的命令。 一个指令是一串二进制代码表示的,包括两个方面的信息:操作码和操作数(地址码)。

操作码:指明操作的性质和功能。
操作数(地址码):指明做作的对象。

操作码 操作数(地址码)

1.6 数据的内部表示

1.6.1 计算机中的数据及其存储单位

(bit)是计算机中数据的最小单位,二进制数码只有0和1,计算机中采用多个数码表示一个数,每个数码称一位。
字节(byte)是存储容量的基本单位,一个字节由8个二进制位组成。在计算机内部一个字节可以表示一个数据,一个英文字母,一个特殊字符;两个字节可以表示一个汉字。衡量存储器的大小,统一以字节为单位。

存储单位 名称 换算 说明
KB 千字节 1 KB=1024 B=210B 适用于文量计算
MB 兆字节 1 MB=1024 KB=220B 适用于内存,软存,光盘计量
GB 吉字节 1 GB=1024 MB=230B 适用于硬盘计算
TB 太字节 1 TB=1024 GB=240B 适用于硬盘计量

1.6.2 进位计数制及其转换

1.6.2.1 进位计数制

数的表示规则称为数制。若用R表示任意整数,进位计数制表示为“逢R进一”。处于不同位置的数码代表的值不同,这与它所在位置的权值有关。任意一个R进制数D可以展开为

(D)R=∑i=−mn−1kiRi\sum_{i=-m}^{n-1}{k_iR^i}∑i=−mn−1​ki​Ri

R为计数的基数,数制中固定的基本符号称为“数码”。i为位数,ki为第i位的数码,Ri是第i位的位权,m,n是最低位和最高位的位序号。
例如:十进制数“5820”,基数R为10,数码“8”的位数i=2(是从右向左,从0开始记得{\it 是从右向左,从0开始记得}是从右向左,从0开始记得),权值Ri=102,此时“8”的值代表: kiRi=8*102=800。

数制 基数R 数码 进位 形式表示
二进制 2 0,1 2i 逢二进一 B
八进制 8 0,1,2,3,4,5,6,7 8i 逢八进一 O
十进制 10 0,1,2,3,4,5,6,7,8,9 10i 逢十进一 D
十六进制 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 16i 逢十六进一 H

tip:常用圆括号加数制基数作为下标来表示不同的进制数,如(5678)B,或者(5678)2

1.6.2.2 转化

R进制数转换为10进制数 方法“按权展开”
二进制数转换为十进制数:(11010)2=1x24+1x23+0x22+1x21+0x20=(26)10
八进制数转换为十进制数:(140)8=1x82+4x81+0x80=(96)10
十六进制数转化为十进制数:(A2B)16=10x162+2x161+11x160=(2603)10

10进制数转换为R进制数
(1)→\rightarrow→二进制

十进制整数

步骤一:将十进制数除以2得到商和余数,商再除以2,再得到商和余数……一直除下去,直到商为0。
步骤二:以最先除得的余数为最低位,最后除得的余数为最高位,从最高到最低将余数依次排列。

以(13)10为例:

步骤 1 2 3 4
除式 132\frac{13}{2}213​ 62\frac{6}{2}26​ 32\frac{3}{2}23​ 22\frac{2}{2}22​
6 3 1 0
余数 1 0 1 1

方向

⟵\longleftarrow⟵ 得到(1101) 2

十进制小数

步骤一:把小数部分乘以2得到一个新数,取走他的整数部分,剩下的小数部分再乘以2,再取走整数部分……直到小数部分为0。
步骤二:以最先取得的整数为最高位,最后取得的整数为最低位,从高向低依次排列。

以(0.125)10为例:

步骤 1 2 3
乘式 0.125x2 0.25x2 0.5x2
乘积 0.25 0.5 1
小数部分 0.25 0.5 0
整数部分 0 0 1

方向

⟶\longrightarrow⟶ 得到(0.001) 2

(2)→\rightarrow→八进制,十六进制数
均可采用以上类似方法,只需改变基数即可。

二进制,八进制,十六进制数相互转换
(3)二→\rightarrow→十六

步骤一:二进制数从小数点开始,整数部分向左,小数部分向右,每4位分一节;
步骤二:整数部分最高位不足4位或小数部分最低位不足4位时补“0”;
步骤三:将每节4位二进制数依次转化为一位十六进制数,再依次连接这些十六进制数即可。

以(10111100101.00011001101)2为例:

二进制数 0101 1110 0101 . 0001 1001 1010
十六进制数 5 E 5 . 1 9 A

得到(5E5.19A)16

(4)十六→\rightarrow→二
将每一位十六进制数用等价的二进制数代替即可。

以(1AC0.6D)16为例:

二进制数 1 A C 0 . 6 D
十六进制数 0001 1010 1100 0000 . 0110 1101

得到(0001101011000000.01101101)2

(5)二八
同理,只需分割3位二进制数转化为八进制数即可。

1.6.3 无符号数和带符号数

(1)无符号数
指整个计算机字长的全部二进制位均用来表示数值,相当于数的绝对值。字长为n的无符号数的表示范围是0~2n-1.

(2)带符号数
计算机无法识别“+”“-”,所以规定把二进制数的最高位作为符号位,0表示正号,1表示负号。

(3)机器数
指把符号数字化的数,常见表示形式有原码,补码,反码,移码等。
原码:符号位表示正负,数值位是真值的绝对值。
反码:正数的反码和原码相同,负数的反码是对该数除符号位外的各位取反(0变1,1变0)。
补码:正数的补码和原码相同,负数的补码是该数的反码最低为加1。
移码:将该数的补码的符号位取反。

1.6.4 机器数的定点和浮点

根据小数点的位置是否固定,在计算机中有两种方法表示,定点数和浮点数。
(1)定点数:约定机器数的小数点的位置是固定的,不再使用“.”来表示小数点,而是约定小数点的位置。通常两种约定:最高位前和最低位后。称前者为定点小数(纯小数),后者定点整数(纯整数)。
(2)浮点数:指以适当的形式将比例因子表示在数据中,让小数点可以根据需要而浮动。如:679.32×102679.32\times 10^2679.32×102=6793.2×10−16793.2\times 10^{-1}6793.2×10−1=0.67932×1030.67932\times 10^{3}0.67932×103。
通常浮点数表示为

N={\rm N}=N=S×RjS\times R^jS×Rj

N表示浮点数,S为尾数,j为阶码,R为阶码的底(隐含,机器数中不出现,通常为2)。S,j通常都是带符号的定点数。

浮点数是由阶码和尾数两部分组成

tip:阶码和尾数之间为小数点位置,阶码是整数,阶符Es和阶值m共同反映了浮点数的表示范围和小数点的实际位置,尾符Ms反应浮点数的正负。

为了提高计算精度,浮点数的尾数必须为规格化数(即尾数的最高位必须是一个有效值)。例如:0.0001101可以表示为0.001101x2-01,或者0.01101x2-10,0.1101x2-11。但是其中只有0.1101x2-11是规格化数。

1.7 操作系统

操作系统是现代计算机系统中最核心和最基本的系统软件之一,所有其他的软件都依赖于操作系统的支持。

1.7.1 CPU管理(进程管理)

1.7.1.1 程序的并发执行

程序只有经过执行才能得到结果。执行分为顺序执行和并发执行
顺序执行:一个程序独占处理器直至程序结束。
//使程序员方便,但系统资源利用率低。

并发执行:一组相互独立的程序在执行中,相互重叠地执行,即一个未结束,另一个已经开始。
//失去了封闭性;不可再现性;间断性,程序间可以相互制约;

1.7.1.2 进程(管理)

指一个具有独立功能的程序关于某个数据集合的一次运行活动。

进程和程序的区别
(1)进程是程序在处理器中的执行过程,是动态概念;程序是一组指令的集合,是静态概念。
(2)进程具有生命周期;程序是固定不变的。
(3)进程包括程序和数据。一个进程可以包含多个程序;一个程序可能对应多个进程。

进程的状态和转换
一个进程的活动情况可以分为五个基本状态:
运行状态:进程占有处理器,正在运行的状态
就绪状态:进程具有运行条件,等待系统分配处理器以便运行的状态
等待状态:(阻塞/睡眠状态)进程不具备运行条件、等待系统分配处理器以便运行的状态
创建状态:进程正在创建中,尚不能运行的状态
终止状态:进程运行结束的状态

五种状态在一定条件下的转化(有点乱啊…0.0,在下还太不会用这个编辑器x_x)

#mermaid-svg-ridnGUuqsBMu3Cof .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-ridnGUuqsBMu3Cof .label text{fill:#333}#mermaid-svg-ridnGUuqsBMu3Cof .node rect,#mermaid-svg-ridnGUuqsBMu3Cof .node circle,#mermaid-svg-ridnGUuqsBMu3Cof .node ellipse,#mermaid-svg-ridnGUuqsBMu3Cof .node polygon,#mermaid-svg-ridnGUuqsBMu3Cof .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-ridnGUuqsBMu3Cof .node .label{text-align:center;fill:#333}#mermaid-svg-ridnGUuqsBMu3Cof .node.clickable{cursor:pointer}#mermaid-svg-ridnGUuqsBMu3Cof .arrowheadPath{fill:#333}#mermaid-svg-ridnGUuqsBMu3Cof .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-ridnGUuqsBMu3Cof .flowchart-link{stroke:#333;fill:none}#mermaid-svg-ridnGUuqsBMu3Cof .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-ridnGUuqsBMu3Cof .edgeLabel rect{opacity:0.9}#mermaid-svg-ridnGUuqsBMu3Cof .edgeLabel span{color:#333}#mermaid-svg-ridnGUuqsBMu3Cof .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-ridnGUuqsBMu3Cof .cluster text{fill:#333}#mermaid-svg-ridnGUuqsBMu3Cof div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-ridnGUuqsBMu3Cof .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-ridnGUuqsBMu3Cof text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-ridnGUuqsBMu3Cof .actor-line{stroke:grey}#mermaid-svg-ridnGUuqsBMu3Cof .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-ridnGUuqsBMu3Cof .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-ridnGUuqsBMu3Cof #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-ridnGUuqsBMu3Cof .sequenceNumber{fill:#fff}#mermaid-svg-ridnGUuqsBMu3Cof #sequencenumber{fill:#333}#mermaid-svg-ridnGUuqsBMu3Cof #crosshead path{fill:#333;stroke:#333}#mermaid-svg-ridnGUuqsBMu3Cof .messageText{fill:#333;stroke:#333}#mermaid-svg-ridnGUuqsBMu3Cof .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-ridnGUuqsBMu3Cof .labelText,#mermaid-svg-ridnGUuqsBMu3Cof .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-ridnGUuqsBMu3Cof .loopText,#mermaid-svg-ridnGUuqsBMu3Cof .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-ridnGUuqsBMu3Cof .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-ridnGUuqsBMu3Cof .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-ridnGUuqsBMu3Cof .noteText,#mermaid-svg-ridnGUuqsBMu3Cof .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-ridnGUuqsBMu3Cof .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-ridnGUuqsBMu3Cof .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-ridnGUuqsBMu3Cof .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-ridnGUuqsBMu3Cof .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ridnGUuqsBMu3Cof .section{stroke:none;opacity:0.2}#mermaid-svg-ridnGUuqsBMu3Cof .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-ridnGUuqsBMu3Cof .section2{fill:#fff400}#mermaid-svg-ridnGUuqsBMu3Cof .section1,#mermaid-svg-ridnGUuqsBMu3Cof .section3{fill:#fff;opacity:0.2}#mermaid-svg-ridnGUuqsBMu3Cof .sectionTitle0{fill:#333}#mermaid-svg-ridnGUuqsBMu3Cof .sectionTitle1{fill:#333}#mermaid-svg-ridnGUuqsBMu3Cof .sectionTitle2{fill:#333}#mermaid-svg-ridnGUuqsBMu3Cof .sectionTitle3{fill:#333}#mermaid-svg-ridnGUuqsBMu3Cof .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ridnGUuqsBMu3Cof .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-ridnGUuqsBMu3Cof .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ridnGUuqsBMu3Cof .grid path{stroke-width:0}#mermaid-svg-ridnGUuqsBMu3Cof .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-ridnGUuqsBMu3Cof .task{stroke-width:2}#mermaid-svg-ridnGUuqsBMu3Cof .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ridnGUuqsBMu3Cof .taskText:not([font-size]){font-size:11px}#mermaid-svg-ridnGUuqsBMu3Cof .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ridnGUuqsBMu3Cof .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-ridnGUuqsBMu3Cof .task.clickable{cursor:pointer}#mermaid-svg-ridnGUuqsBMu3Cof .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ridnGUuqsBMu3Cof .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ridnGUuqsBMu3Cof .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ridnGUuqsBMu3Cof .taskText0,#mermaid-svg-ridnGUuqsBMu3Cof .taskText1,#mermaid-svg-ridnGUuqsBMu3Cof .taskText2,#mermaid-svg-ridnGUuqsBMu3Cof .taskText3{fill:#fff}#mermaid-svg-ridnGUuqsBMu3Cof .task0,#mermaid-svg-ridnGUuqsBMu3Cof .task1,#mermaid-svg-ridnGUuqsBMu3Cof .task2,#mermaid-svg-ridnGUuqsBMu3Cof .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-ridnGUuqsBMu3Cof .taskTextOutside0,#mermaid-svg-ridnGUuqsBMu3Cof .taskTextOutside2{fill:#000}#mermaid-svg-ridnGUuqsBMu3Cof .taskTextOutside1,#mermaid-svg-ridnGUuqsBMu3Cof .taskTextOutside3{fill:#000}#mermaid-svg-ridnGUuqsBMu3Cof .active0,#mermaid-svg-ridnGUuqsBMu3Cof .active1,#mermaid-svg-ridnGUuqsBMu3Cof .active2,#mermaid-svg-ridnGUuqsBMu3Cof .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-ridnGUuqsBMu3Cof .activeText0,#mermaid-svg-ridnGUuqsBMu3Cof .activeText1,#mermaid-svg-ridnGUuqsBMu3Cof .activeText2,#mermaid-svg-ridnGUuqsBMu3Cof .activeText3{fill:#000 !important}#mermaid-svg-ridnGUuqsBMu3Cof .done0,#mermaid-svg-ridnGUuqsBMu3Cof .done1,#mermaid-svg-ridnGUuqsBMu3Cof .done2,#mermaid-svg-ridnGUuqsBMu3Cof .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-ridnGUuqsBMu3Cof .doneText0,#mermaid-svg-ridnGUuqsBMu3Cof .doneText1,#mermaid-svg-ridnGUuqsBMu3Cof .doneText2,#mermaid-svg-ridnGUuqsBMu3Cof .doneText3{fill:#000 !important}#mermaid-svg-ridnGUuqsBMu3Cof .crit0,#mermaid-svg-ridnGUuqsBMu3Cof .crit1,#mermaid-svg-ridnGUuqsBMu3Cof .crit2,#mermaid-svg-ridnGUuqsBMu3Cof .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-ridnGUuqsBMu3Cof .activeCrit0,#mermaid-svg-ridnGUuqsBMu3Cof .activeCrit1,#mermaid-svg-ridnGUuqsBMu3Cof .activeCrit2,#mermaid-svg-ridnGUuqsBMu3Cof .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-ridnGUuqsBMu3Cof .doneCrit0,#mermaid-svg-ridnGUuqsBMu3Cof .doneCrit1,#mermaid-svg-ridnGUuqsBMu3Cof .doneCrit2,#mermaid-svg-ridnGUuqsBMu3Cof .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-ridnGUuqsBMu3Cof .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-ridnGUuqsBMu3Cof .milestoneText{font-style:italic}#mermaid-svg-ridnGUuqsBMu3Cof .doneCritText0,#mermaid-svg-ridnGUuqsBMu3Cof .doneCritText1,#mermaid-svg-ridnGUuqsBMu3Cof .doneCritText2,#mermaid-svg-ridnGUuqsBMu3Cof .doneCritText3{fill:#000 !important}#mermaid-svg-ridnGUuqsBMu3Cof .activeCritText0,#mermaid-svg-ridnGUuqsBMu3Cof .activeCritText1,#mermaid-svg-ridnGUuqsBMu3Cof .activeCritText2,#mermaid-svg-ridnGUuqsBMu3Cof .activeCritText3{fill:#000 !important}#mermaid-svg-ridnGUuqsBMu3Cof .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ridnGUuqsBMu3Cof g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-ridnGUuqsBMu3Cof g.classGroup text .title{font-weight:bolder}#mermaid-svg-ridnGUuqsBMu3Cof g.clickable{cursor:pointer}#mermaid-svg-ridnGUuqsBMu3Cof g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-ridnGUuqsBMu3Cof g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-ridnGUuqsBMu3Cof .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-ridnGUuqsBMu3Cof .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-ridnGUuqsBMu3Cof .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-ridnGUuqsBMu3Cof .dashed-line{stroke-dasharray:3}#mermaid-svg-ridnGUuqsBMu3Cof #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ridnGUuqsBMu3Cof #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ridnGUuqsBMu3Cof #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-ridnGUuqsBMu3Cof #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-ridnGUuqsBMu3Cof #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ridnGUuqsBMu3Cof #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ridnGUuqsBMu3Cof #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ridnGUuqsBMu3Cof #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ridnGUuqsBMu3Cof .commit-id,#mermaid-svg-ridnGUuqsBMu3Cof .commit-msg,#mermaid-svg-ridnGUuqsBMu3Cof .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ridnGUuqsBMu3Cof .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ridnGUuqsBMu3Cof .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ridnGUuqsBMu3Cof g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ridnGUuqsBMu3Cof g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-ridnGUuqsBMu3Cof g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-ridnGUuqsBMu3Cof g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-ridnGUuqsBMu3Cof g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-ridnGUuqsBMu3Cof g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-ridnGUuqsBMu3Cof .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-ridnGUuqsBMu3Cof .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-ridnGUuqsBMu3Cof .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-ridnGUuqsBMu3Cof .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-ridnGUuqsBMu3Cof .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-ridnGUuqsBMu3Cof .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-ridnGUuqsBMu3Cof .edgeLabel text{fill:#333}#mermaid-svg-ridnGUuqsBMu3Cof .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ridnGUuqsBMu3Cof .node circle.state-start{fill:black;stroke:black}#mermaid-svg-ridnGUuqsBMu3Cof .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-ridnGUuqsBMu3Cof #statediagram-barbEnd{fill:#9370db}#mermaid-svg-ridnGUuqsBMu3Cof .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-ridnGUuqsBMu3Cof .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-ridnGUuqsBMu3Cof .statediagram-state .divider{stroke:#9370db}#mermaid-svg-ridnGUuqsBMu3Cof .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-ridnGUuqsBMu3Cof .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-ridnGUuqsBMu3Cof .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-ridnGUuqsBMu3Cof .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-ridnGUuqsBMu3Cof .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-ridnGUuqsBMu3Cof .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-ridnGUuqsBMu3Cof .note-edge{stroke-dasharray:5}#mermaid-svg-ridnGUuqsBMu3Cof .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-ridnGUuqsBMu3Cof .error-icon{fill:#522}#mermaid-svg-ridnGUuqsBMu3Cof .error-text{fill:#522;stroke:#522}#mermaid-svg-ridnGUuqsBMu3Cof .edge-thickness-normal{stroke-width:2px}#mermaid-svg-ridnGUuqsBMu3Cof .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-ridnGUuqsBMu3Cof .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-ridnGUuqsBMu3Cof .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-ridnGUuqsBMu3Cof .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-ridnGUuqsBMu3Cof .marker{fill:#333}#mermaid-svg-ridnGUuqsBMu3Cof .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-ridnGUuqsBMu3Cof {color: rgba(0, 0, 0, 0.75);font: ;}

许可
进程调度
释放
I/O完成
时间片完
I/O请求
创建
就绪
运行
中止
等待

进程控制块
每个进程有且只有一个进程控制块(PCB)。是进程存在的唯一标识,是系统为了管理进程设置的一个专门的数据结构。它存放着操作系统用于描述进程情况及控制进程运行所需的全部信息。

其他概念
线程:比进程更小的能独立运行的基本单位,用它来提高程序的并行程度,提升系统的吞吐量。
死锁:由于各进程相互独立地动态获得,不断申请和释放系统中的软硬件功能,有可能使系统中若干进程均因“无知的”等待对方所占有的资源而无限地等待。这种状态称为死锁。

2.数据结构与算法

2.1 算法

算法
指对解题方案准确而完整的描述,即是解决问题的步骤。

基本特征
(1)可行性:步骤可以实现;执行结果达到预期目的;
(2)确定性:步骤明确,不模棱两可,不准有多义性;
(3)有穷性:有限的时间里完成;
(4)拥有足够的情报:当拥有足够的输入信息和初始化信息,算法才是有效的;当提供的信息不足时,算法可能无效。

算法复杂度
用来衡量算法的优略
时间复杂度:执行算法的所需要的计算工作量,是以算法的基本运算次数来度量的。
空间复杂度:算法所需要的存储空间。

2.2 数据结构的基本概念

2.2.1 数据结构

数据结构是指相互有关联的数据元素的集合。包含两个要素,“数据”,“结构”。

数据:是需要处理的数据元素的集合,一般来说,这些数据元素具有某个共同的特征。
结构:就是关系,集合中各个数据元素之间的联系,通常把两两之间的关系描述成前后关系。

数据结构分为数据的逻辑结构数据的存储结构。数据的逻辑结构反映数据元素之间逻辑关系(前后关系);数据的存储结构又称为数据的物理结构,是数据的逻辑结构再计算机存储空间中的存放方式。

2.2.2 数据结构的表示

数据的逻辑结构的数学定义形式——数据结构是一个二元组:B=(D,R)B=(D,R)B=(D,R)其中B表示数据结构,D是数据元素的集合,R是D上数据关系的集合,它反映了D中数据元素之间的前后关系。

例子1:把一日三餐看作数据结构,则可以表示成:
B=(D,R)
D={早餐,午餐,晚餐}
R={(早餐,午餐),(午餐,晚餐)}

例子2:把部队军职看作数据结构,则:
B=(D,R)
D={连长,排长,班长,士兵}
R={(连长,排长),(排长,班长),(班长,士兵)}

还可用图形来表示。用中间标有元素值的方框表示数据元素,称为数据节点(节点)。对于每个二元组,用一条有向线段从前者指向后者。

如:
例子1

#mermaid-svg-fGy8Uh38vhlCVZRo .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .label text{fill:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .node rect,#mermaid-svg-fGy8Uh38vhlCVZRo .node circle,#mermaid-svg-fGy8Uh38vhlCVZRo .node ellipse,#mermaid-svg-fGy8Uh38vhlCVZRo .node polygon,#mermaid-svg-fGy8Uh38vhlCVZRo .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-fGy8Uh38vhlCVZRo .node .label{text-align:center;fill:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .node.clickable{cursor:pointer}#mermaid-svg-fGy8Uh38vhlCVZRo .arrowheadPath{fill:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-fGy8Uh38vhlCVZRo .flowchart-link{stroke:#333;fill:none}#mermaid-svg-fGy8Uh38vhlCVZRo .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-fGy8Uh38vhlCVZRo .edgeLabel rect{opacity:0.9}#mermaid-svg-fGy8Uh38vhlCVZRo .edgeLabel span{color:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-fGy8Uh38vhlCVZRo .cluster text{fill:#333}#mermaid-svg-fGy8Uh38vhlCVZRo div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-fGy8Uh38vhlCVZRo .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-fGy8Uh38vhlCVZRo text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-fGy8Uh38vhlCVZRo .actor-line{stroke:grey}#mermaid-svg-fGy8Uh38vhlCVZRo .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-fGy8Uh38vhlCVZRo #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .sequenceNumber{fill:#fff}#mermaid-svg-fGy8Uh38vhlCVZRo #sequencenumber{fill:#333}#mermaid-svg-fGy8Uh38vhlCVZRo #crosshead path{fill:#333;stroke:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .messageText{fill:#333;stroke:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-fGy8Uh38vhlCVZRo .labelText,#mermaid-svg-fGy8Uh38vhlCVZRo .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-fGy8Uh38vhlCVZRo .loopText,#mermaid-svg-fGy8Uh38vhlCVZRo .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-fGy8Uh38vhlCVZRo .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-fGy8Uh38vhlCVZRo .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-fGy8Uh38vhlCVZRo .noteText,#mermaid-svg-fGy8Uh38vhlCVZRo .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-fGy8Uh38vhlCVZRo .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-fGy8Uh38vhlCVZRo .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-fGy8Uh38vhlCVZRo .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-fGy8Uh38vhlCVZRo .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fGy8Uh38vhlCVZRo .section{stroke:none;opacity:0.2}#mermaid-svg-fGy8Uh38vhlCVZRo .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-fGy8Uh38vhlCVZRo .section2{fill:#fff400}#mermaid-svg-fGy8Uh38vhlCVZRo .section1,#mermaid-svg-fGy8Uh38vhlCVZRo .section3{fill:#fff;opacity:0.2}#mermaid-svg-fGy8Uh38vhlCVZRo .sectionTitle0{fill:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .sectionTitle1{fill:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .sectionTitle2{fill:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .sectionTitle3{fill:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fGy8Uh38vhlCVZRo .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-fGy8Uh38vhlCVZRo .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fGy8Uh38vhlCVZRo .grid path{stroke-width:0}#mermaid-svg-fGy8Uh38vhlCVZRo .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-fGy8Uh38vhlCVZRo .task{stroke-width:2}#mermaid-svg-fGy8Uh38vhlCVZRo .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fGy8Uh38vhlCVZRo .taskText:not([font-size]){font-size:11px}#mermaid-svg-fGy8Uh38vhlCVZRo .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fGy8Uh38vhlCVZRo .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-fGy8Uh38vhlCVZRo .task.clickable{cursor:pointer}#mermaid-svg-fGy8Uh38vhlCVZRo .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-fGy8Uh38vhlCVZRo .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-fGy8Uh38vhlCVZRo .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-fGy8Uh38vhlCVZRo .taskText0,#mermaid-svg-fGy8Uh38vhlCVZRo .taskText1,#mermaid-svg-fGy8Uh38vhlCVZRo .taskText2,#mermaid-svg-fGy8Uh38vhlCVZRo .taskText3{fill:#fff}#mermaid-svg-fGy8Uh38vhlCVZRo .task0,#mermaid-svg-fGy8Uh38vhlCVZRo .task1,#mermaid-svg-fGy8Uh38vhlCVZRo .task2,#mermaid-svg-fGy8Uh38vhlCVZRo .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-fGy8Uh38vhlCVZRo .taskTextOutside0,#mermaid-svg-fGy8Uh38vhlCVZRo .taskTextOutside2{fill:#000}#mermaid-svg-fGy8Uh38vhlCVZRo .taskTextOutside1,#mermaid-svg-fGy8Uh38vhlCVZRo .taskTextOutside3{fill:#000}#mermaid-svg-fGy8Uh38vhlCVZRo .active0,#mermaid-svg-fGy8Uh38vhlCVZRo .active1,#mermaid-svg-fGy8Uh38vhlCVZRo .active2,#mermaid-svg-fGy8Uh38vhlCVZRo .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-fGy8Uh38vhlCVZRo .activeText0,#mermaid-svg-fGy8Uh38vhlCVZRo .activeText1,#mermaid-svg-fGy8Uh38vhlCVZRo .activeText2,#mermaid-svg-fGy8Uh38vhlCVZRo .activeText3{fill:#000 !important}#mermaid-svg-fGy8Uh38vhlCVZRo .done0,#mermaid-svg-fGy8Uh38vhlCVZRo .done1,#mermaid-svg-fGy8Uh38vhlCVZRo .done2,#mermaid-svg-fGy8Uh38vhlCVZRo .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-fGy8Uh38vhlCVZRo .doneText0,#mermaid-svg-fGy8Uh38vhlCVZRo .doneText1,#mermaid-svg-fGy8Uh38vhlCVZRo .doneText2,#mermaid-svg-fGy8Uh38vhlCVZRo .doneText3{fill:#000 !important}#mermaid-svg-fGy8Uh38vhlCVZRo .crit0,#mermaid-svg-fGy8Uh38vhlCVZRo .crit1,#mermaid-svg-fGy8Uh38vhlCVZRo .crit2,#mermaid-svg-fGy8Uh38vhlCVZRo .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-fGy8Uh38vhlCVZRo .activeCrit0,#mermaid-svg-fGy8Uh38vhlCVZRo .activeCrit1,#mermaid-svg-fGy8Uh38vhlCVZRo .activeCrit2,#mermaid-svg-fGy8Uh38vhlCVZRo .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-fGy8Uh38vhlCVZRo .doneCrit0,#mermaid-svg-fGy8Uh38vhlCVZRo .doneCrit1,#mermaid-svg-fGy8Uh38vhlCVZRo .doneCrit2,#mermaid-svg-fGy8Uh38vhlCVZRo .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-fGy8Uh38vhlCVZRo .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-fGy8Uh38vhlCVZRo .milestoneText{font-style:italic}#mermaid-svg-fGy8Uh38vhlCVZRo .doneCritText0,#mermaid-svg-fGy8Uh38vhlCVZRo .doneCritText1,#mermaid-svg-fGy8Uh38vhlCVZRo .doneCritText2,#mermaid-svg-fGy8Uh38vhlCVZRo .doneCritText3{fill:#000 !important}#mermaid-svg-fGy8Uh38vhlCVZRo .activeCritText0,#mermaid-svg-fGy8Uh38vhlCVZRo .activeCritText1,#mermaid-svg-fGy8Uh38vhlCVZRo .activeCritText2,#mermaid-svg-fGy8Uh38vhlCVZRo .activeCritText3{fill:#000 !important}#mermaid-svg-fGy8Uh38vhlCVZRo .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fGy8Uh38vhlCVZRo g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-fGy8Uh38vhlCVZRo g.classGroup text .title{font-weight:bolder}#mermaid-svg-fGy8Uh38vhlCVZRo g.clickable{cursor:pointer}#mermaid-svg-fGy8Uh38vhlCVZRo g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-fGy8Uh38vhlCVZRo g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-fGy8Uh38vhlCVZRo .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-fGy8Uh38vhlCVZRo .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-fGy8Uh38vhlCVZRo .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-fGy8Uh38vhlCVZRo .dashed-line{stroke-dasharray:3}#mermaid-svg-fGy8Uh38vhlCVZRo #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fGy8Uh38vhlCVZRo #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fGy8Uh38vhlCVZRo #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-fGy8Uh38vhlCVZRo #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-fGy8Uh38vhlCVZRo #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fGy8Uh38vhlCVZRo #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fGy8Uh38vhlCVZRo #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fGy8Uh38vhlCVZRo #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fGy8Uh38vhlCVZRo .commit-id,#mermaid-svg-fGy8Uh38vhlCVZRo .commit-msg,#mermaid-svg-fGy8Uh38vhlCVZRo .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fGy8Uh38vhlCVZRo .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fGy8Uh38vhlCVZRo .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fGy8Uh38vhlCVZRo g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fGy8Uh38vhlCVZRo g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-fGy8Uh38vhlCVZRo g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-fGy8Uh38vhlCVZRo g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-fGy8Uh38vhlCVZRo g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-fGy8Uh38vhlCVZRo g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-fGy8Uh38vhlCVZRo .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-fGy8Uh38vhlCVZRo .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-fGy8Uh38vhlCVZRo .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-fGy8Uh38vhlCVZRo .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-fGy8Uh38vhlCVZRo .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-fGy8Uh38vhlCVZRo .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-fGy8Uh38vhlCVZRo .edgeLabel text{fill:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fGy8Uh38vhlCVZRo .node circle.state-start{fill:black;stroke:black}#mermaid-svg-fGy8Uh38vhlCVZRo .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-fGy8Uh38vhlCVZRo #statediagram-barbEnd{fill:#9370db}#mermaid-svg-fGy8Uh38vhlCVZRo .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-fGy8Uh38vhlCVZRo .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-fGy8Uh38vhlCVZRo .statediagram-state .divider{stroke:#9370db}#mermaid-svg-fGy8Uh38vhlCVZRo .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-fGy8Uh38vhlCVZRo .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-fGy8Uh38vhlCVZRo .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-fGy8Uh38vhlCVZRo .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-fGy8Uh38vhlCVZRo .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-fGy8Uh38vhlCVZRo .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-fGy8Uh38vhlCVZRo .note-edge{stroke-dasharray:5}#mermaid-svg-fGy8Uh38vhlCVZRo .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-fGy8Uh38vhlCVZRo .error-icon{fill:#522}#mermaid-svg-fGy8Uh38vhlCVZRo .error-text{fill:#522;stroke:#522}#mermaid-svg-fGy8Uh38vhlCVZRo .edge-thickness-normal{stroke-width:2px}#mermaid-svg-fGy8Uh38vhlCVZRo .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-fGy8Uh38vhlCVZRo .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-fGy8Uh38vhlCVZRo .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-fGy8Uh38vhlCVZRo .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-fGy8Uh38vhlCVZRo .marker{fill:#333}#mermaid-svg-fGy8Uh38vhlCVZRo .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-fGy8Uh38vhlCVZRo {color: rgba(0, 0, 0, 0.75);font: ;}

早餐
午餐
晚餐

例子2//********//(·.·)感觉表没打好0.0(GG了人x.x)~//

#mermaid-svg-Fjyy8JtroN6bKqw4 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .label text{fill:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .node rect,#mermaid-svg-Fjyy8JtroN6bKqw4 .node circle,#mermaid-svg-Fjyy8JtroN6bKqw4 .node ellipse,#mermaid-svg-Fjyy8JtroN6bKqw4 .node polygon,#mermaid-svg-Fjyy8JtroN6bKqw4 .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-Fjyy8JtroN6bKqw4 .node .label{text-align:center;fill:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .node.clickable{cursor:pointer}#mermaid-svg-Fjyy8JtroN6bKqw4 .arrowheadPath{fill:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-Fjyy8JtroN6bKqw4 .flowchart-link{stroke:#333;fill:none}#mermaid-svg-Fjyy8JtroN6bKqw4 .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-Fjyy8JtroN6bKqw4 .edgeLabel rect{opacity:0.9}#mermaid-svg-Fjyy8JtroN6bKqw4 .edgeLabel span{color:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-Fjyy8JtroN6bKqw4 .cluster text{fill:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-Fjyy8JtroN6bKqw4 .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-Fjyy8JtroN6bKqw4 text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-Fjyy8JtroN6bKqw4 .actor-line{stroke:grey}#mermaid-svg-Fjyy8JtroN6bKqw4 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .sequenceNumber{fill:#fff}#mermaid-svg-Fjyy8JtroN6bKqw4 #sequencenumber{fill:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 #crosshead path{fill:#333;stroke:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .messageText{fill:#333;stroke:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-Fjyy8JtroN6bKqw4 .labelText,#mermaid-svg-Fjyy8JtroN6bKqw4 .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-Fjyy8JtroN6bKqw4 .loopText,#mermaid-svg-Fjyy8JtroN6bKqw4 .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-Fjyy8JtroN6bKqw4 .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-Fjyy8JtroN6bKqw4 .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-Fjyy8JtroN6bKqw4 .noteText,#mermaid-svg-Fjyy8JtroN6bKqw4 .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-Fjyy8JtroN6bKqw4 .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-Fjyy8JtroN6bKqw4 .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-Fjyy8JtroN6bKqw4 .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-Fjyy8JtroN6bKqw4 .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fjyy8JtroN6bKqw4 .section{stroke:none;opacity:0.2}#mermaid-svg-Fjyy8JtroN6bKqw4 .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-Fjyy8JtroN6bKqw4 .section2{fill:#fff400}#mermaid-svg-Fjyy8JtroN6bKqw4 .section1,#mermaid-svg-Fjyy8JtroN6bKqw4 .section3{fill:#fff;opacity:0.2}#mermaid-svg-Fjyy8JtroN6bKqw4 .sectionTitle0{fill:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .sectionTitle1{fill:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .sectionTitle2{fill:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .sectionTitle3{fill:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fjyy8JtroN6bKqw4 .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-Fjyy8JtroN6bKqw4 .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fjyy8JtroN6bKqw4 .grid path{stroke-width:0}#mermaid-svg-Fjyy8JtroN6bKqw4 .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-Fjyy8JtroN6bKqw4 .task{stroke-width:2}#mermaid-svg-Fjyy8JtroN6bKqw4 .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fjyy8JtroN6bKqw4 .taskText:not([font-size]){font-size:11px}#mermaid-svg-Fjyy8JtroN6bKqw4 .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fjyy8JtroN6bKqw4 .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-Fjyy8JtroN6bKqw4 .task.clickable{cursor:pointer}#mermaid-svg-Fjyy8JtroN6bKqw4 .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-Fjyy8JtroN6bKqw4 .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-Fjyy8JtroN6bKqw4 .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-Fjyy8JtroN6bKqw4 .taskText0,#mermaid-svg-Fjyy8JtroN6bKqw4 .taskText1,#mermaid-svg-Fjyy8JtroN6bKqw4 .taskText2,#mermaid-svg-Fjyy8JtroN6bKqw4 .taskText3{fill:#fff}#mermaid-svg-Fjyy8JtroN6bKqw4 .task0,#mermaid-svg-Fjyy8JtroN6bKqw4 .task1,#mermaid-svg-Fjyy8JtroN6bKqw4 .task2,#mermaid-svg-Fjyy8JtroN6bKqw4 .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-Fjyy8JtroN6bKqw4 .taskTextOutside0,#mermaid-svg-Fjyy8JtroN6bKqw4 .taskTextOutside2{fill:#000}#mermaid-svg-Fjyy8JtroN6bKqw4 .taskTextOutside1,#mermaid-svg-Fjyy8JtroN6bKqw4 .taskTextOutside3{fill:#000}#mermaid-svg-Fjyy8JtroN6bKqw4 .active0,#mermaid-svg-Fjyy8JtroN6bKqw4 .active1,#mermaid-svg-Fjyy8JtroN6bKqw4 .active2,#mermaid-svg-Fjyy8JtroN6bKqw4 .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-Fjyy8JtroN6bKqw4 .activeText0,#mermaid-svg-Fjyy8JtroN6bKqw4 .activeText1,#mermaid-svg-Fjyy8JtroN6bKqw4 .activeText2,#mermaid-svg-Fjyy8JtroN6bKqw4 .activeText3{fill:#000 !important}#mermaid-svg-Fjyy8JtroN6bKqw4 .done0,#mermaid-svg-Fjyy8JtroN6bKqw4 .done1,#mermaid-svg-Fjyy8JtroN6bKqw4 .done2,#mermaid-svg-Fjyy8JtroN6bKqw4 .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-Fjyy8JtroN6bKqw4 .doneText0,#mermaid-svg-Fjyy8JtroN6bKqw4 .doneText1,#mermaid-svg-Fjyy8JtroN6bKqw4 .doneText2,#mermaid-svg-Fjyy8JtroN6bKqw4 .doneText3{fill:#000 !important}#mermaid-svg-Fjyy8JtroN6bKqw4 .crit0,#mermaid-svg-Fjyy8JtroN6bKqw4 .crit1,#mermaid-svg-Fjyy8JtroN6bKqw4 .crit2,#mermaid-svg-Fjyy8JtroN6bKqw4 .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-Fjyy8JtroN6bKqw4 .activeCrit0,#mermaid-svg-Fjyy8JtroN6bKqw4 .activeCrit1,#mermaid-svg-Fjyy8JtroN6bKqw4 .activeCrit2,#mermaid-svg-Fjyy8JtroN6bKqw4 .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-Fjyy8JtroN6bKqw4 .doneCrit0,#mermaid-svg-Fjyy8JtroN6bKqw4 .doneCrit1,#mermaid-svg-Fjyy8JtroN6bKqw4 .doneCrit2,#mermaid-svg-Fjyy8JtroN6bKqw4 .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-Fjyy8JtroN6bKqw4 .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-Fjyy8JtroN6bKqw4 .milestoneText{font-style:italic}#mermaid-svg-Fjyy8JtroN6bKqw4 .doneCritText0,#mermaid-svg-Fjyy8JtroN6bKqw4 .doneCritText1,#mermaid-svg-Fjyy8JtroN6bKqw4 .doneCritText2,#mermaid-svg-Fjyy8JtroN6bKqw4 .doneCritText3{fill:#000 !important}#mermaid-svg-Fjyy8JtroN6bKqw4 .activeCritText0,#mermaid-svg-Fjyy8JtroN6bKqw4 .activeCritText1,#mermaid-svg-Fjyy8JtroN6bKqw4 .activeCritText2,#mermaid-svg-Fjyy8JtroN6bKqw4 .activeCritText3{fill:#000 !important}#mermaid-svg-Fjyy8JtroN6bKqw4 .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fjyy8JtroN6bKqw4 g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-Fjyy8JtroN6bKqw4 g.classGroup text .title{font-weight:bolder}#mermaid-svg-Fjyy8JtroN6bKqw4 g.clickable{cursor:pointer}#mermaid-svg-Fjyy8JtroN6bKqw4 g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-Fjyy8JtroN6bKqw4 g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-Fjyy8JtroN6bKqw4 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-Fjyy8JtroN6bKqw4 .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-Fjyy8JtroN6bKqw4 .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-Fjyy8JtroN6bKqw4 .dashed-line{stroke-dasharray:3}#mermaid-svg-Fjyy8JtroN6bKqw4 #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Fjyy8JtroN6bKqw4 #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Fjyy8JtroN6bKqw4 #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-Fjyy8JtroN6bKqw4 #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-Fjyy8JtroN6bKqw4 #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Fjyy8JtroN6bKqw4 #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Fjyy8JtroN6bKqw4 #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Fjyy8JtroN6bKqw4 #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Fjyy8JtroN6bKqw4 .commit-id,#mermaid-svg-Fjyy8JtroN6bKqw4 .commit-msg,#mermaid-svg-Fjyy8JtroN6bKqw4 .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fjyy8JtroN6bKqw4 .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fjyy8JtroN6bKqw4 .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fjyy8JtroN6bKqw4 g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fjyy8JtroN6bKqw4 g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-Fjyy8JtroN6bKqw4 g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-Fjyy8JtroN6bKqw4 g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-Fjyy8JtroN6bKqw4 g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-Fjyy8JtroN6bKqw4 .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-Fjyy8JtroN6bKqw4 .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-Fjyy8JtroN6bKqw4 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-Fjyy8JtroN6bKqw4 .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-Fjyy8JtroN6bKqw4 .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-Fjyy8JtroN6bKqw4 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-Fjyy8JtroN6bKqw4 .edgeLabel text{fill:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fjyy8JtroN6bKqw4 .node circle.state-start{fill:black;stroke:black}#mermaid-svg-Fjyy8JtroN6bKqw4 .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-Fjyy8JtroN6bKqw4 #statediagram-barbEnd{fill:#9370db}#mermaid-svg-Fjyy8JtroN6bKqw4 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-Fjyy8JtroN6bKqw4 .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-Fjyy8JtroN6bKqw4 .statediagram-state .divider{stroke:#9370db}#mermaid-svg-Fjyy8JtroN6bKqw4 .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-Fjyy8JtroN6bKqw4 .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-Fjyy8JtroN6bKqw4 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-Fjyy8JtroN6bKqw4 .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-Fjyy8JtroN6bKqw4 .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-Fjyy8JtroN6bKqw4 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-Fjyy8JtroN6bKqw4 .note-edge{stroke-dasharray:5}#mermaid-svg-Fjyy8JtroN6bKqw4 .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-Fjyy8JtroN6bKqw4 .error-icon{fill:#522}#mermaid-svg-Fjyy8JtroN6bKqw4 .error-text{fill:#522;stroke:#522}#mermaid-svg-Fjyy8JtroN6bKqw4 .edge-thickness-normal{stroke-width:2px}#mermaid-svg-Fjyy8JtroN6bKqw4 .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-Fjyy8JtroN6bKqw4 .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-Fjyy8JtroN6bKqw4 .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-Fjyy8JtroN6bKqw4 .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-Fjyy8JtroN6bKqw4 .marker{fill:#333}#mermaid-svg-Fjyy8JtroN6bKqw4 .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-Fjyy8JtroN6bKqw4 {color: rgba(0, 0, 0, 0.75);font: ;}

连长
排长
排长
班长
班长
士兵
士兵
士兵
士兵
班长
班长
士兵
士兵
士兵
士兵

其他基本概念:

基本概念 含义 例子
根节点 数据结构中,没有前件的节点 上面例子1中的“早餐”
终端节点(或叶子节点) 数据结构中,没有后件的节点 上面例子1中的“晚餐”
内部节点 数据结构中,除去根节点和终端节点的节点 上面例子1中的“午餐”

2.2.3 线性结构和非线性结构

类型 含义 例子
线性结构 【两个条件:1.有且只有一个根节点;2.每个节点最多有一个前件,也最多有一个后件。】满足即为线性结构 如例子一日三餐
非线性结构 不满足两个条件即为非线性结构。主要指树形和网状结构 如例子军职结构
  • 没有数据元素的数据结构称为空的数据结构

2.3 线性表及其顺序存储结构

2.3.1 线性表(线性结构)

结构特征:1.只有一个根节点;2.只有一个终端节点;3.所有节点只有一个前件一个后件。

表示:(a1,a2,…,ai,…,an)
ai(i=1,2,3,…,n)是数据元素,也是节点。

2.3.2 线性表的顺序存储结构

线性表一般采用顺序存储和链式存储结构
顺序存储:将线性表中元素一个接一个存储在一片相邻的存储区域中。
特征:所有数据元素所占的存储空间是连续的;各数据元素在存储空间里是按逻辑顺序依次存放的。

2.4 栈和队列

2.4.1 栈及其基本运算

(stack)是一种特殊的线性表。它所有的插入和删除都只允许在表的同一端,允许插入和删除的一端是栈顶,不允许的一端是栈底。没有数据元素的是空栈。

  • 通常用指针top指示栈顶位置,用指针bottom指向栈底位置。栈顶指针top反映了栈不断变化的状态。

栈的基本运算:入栈,退栈,读栈顶元素。栈的修改原则是“后进先出”,
假设栈H={a1,a2,…,an},则a1是栈底元素,an是栈顶元素。栈中元素按a1,a2,…,an的顺序依次进栈,退栈时第一个元素应是an

2.4.2 队列及其基本计算

队列(queue)也是一种特殊的线性表。允许在一端进行插入,在另一端进行删除。允许删除的一端是队头,允许插入的是队尾

  • 通常用队头指针front指示当前执行退队运算的位置;用队尾指针rear指示当前执行入队运算的位置。它们共同反映了队列中元素动态变化的情况。

队列的基本运算:入队,退队。修改原则是“先进先出”。

循环队列:将队列的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。

  • 在循环队列中,用队尾指针rear指向队尾元素,用队头指针front指向排头位置的前一个位置。因此从队头指针front指向的下一个位置到队尾指针rear指向的元素之间的所有元素都是队列中的元素。

    如图,为循环队列初始状态。
  • 当front=rear时,不能确定队列是满是空,加入标志s,s=0表示为队列空;s=1且front=rear表示队列满。

2.5 线性链表

线性链表:线性表的链式存储结构,简称链表。这种链表每个节点只有一个指针域,又称单链表。

  • 其第一个元素没有前件,指向第一个节点的指针,是特殊指针,称头指针(HEAD);最后一个节点没有后件,最后一个节点的指针域为空,记NULL或0。
  • 链表的存储单元是任意的,前后关系有存储节点的指针来表示。当头指针等于NULL或0,为空表。
  • 双向链表:每个节点设置两个指针,一个指向前件(Llink),一个指向后件(Rlink)。

带链的栈:可以将栈组织成为一个链表。
带链的队列:与栈类似。

链栈

链队

顺序表和链表的优缺点

类型 优点 缺点
顺序表 1.可以随机存取表中任意节点;2.无需为表示节点之间关系而额外提供存储空间 1.插入和删除运算的效率过低;2.存储空间不便于扩充;3.不便于存储空间的动态分配
链表 1.插入和删除运算只需要改变指针,不需要移动元素;2.存储空间易于扩充和动态分配 需要额外的存储空间来存放指针,且元素存储密度低

2.6 树与二叉树

2.6.1 树

树是一种简单的非线性结构。
示例:

#mermaid-svg-rJrlppQamll6XgFF .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-rJrlppQamll6XgFF .label text{fill:#333}#mermaid-svg-rJrlppQamll6XgFF .node rect,#mermaid-svg-rJrlppQamll6XgFF .node circle,#mermaid-svg-rJrlppQamll6XgFF .node ellipse,#mermaid-svg-rJrlppQamll6XgFF .node polygon,#mermaid-svg-rJrlppQamll6XgFF .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-rJrlppQamll6XgFF .node .label{text-align:center;fill:#333}#mermaid-svg-rJrlppQamll6XgFF .node.clickable{cursor:pointer}#mermaid-svg-rJrlppQamll6XgFF .arrowheadPath{fill:#333}#mermaid-svg-rJrlppQamll6XgFF .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-rJrlppQamll6XgFF .flowchart-link{stroke:#333;fill:none}#mermaid-svg-rJrlppQamll6XgFF .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-rJrlppQamll6XgFF .edgeLabel rect{opacity:0.9}#mermaid-svg-rJrlppQamll6XgFF .edgeLabel span{color:#333}#mermaid-svg-rJrlppQamll6XgFF .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-rJrlppQamll6XgFF .cluster text{fill:#333}#mermaid-svg-rJrlppQamll6XgFF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-rJrlppQamll6XgFF .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-rJrlppQamll6XgFF text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-rJrlppQamll6XgFF .actor-line{stroke:grey}#mermaid-svg-rJrlppQamll6XgFF .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-rJrlppQamll6XgFF .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-rJrlppQamll6XgFF #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-rJrlppQamll6XgFF .sequenceNumber{fill:#fff}#mermaid-svg-rJrlppQamll6XgFF #sequencenumber{fill:#333}#mermaid-svg-rJrlppQamll6XgFF #crosshead path{fill:#333;stroke:#333}#mermaid-svg-rJrlppQamll6XgFF .messageText{fill:#333;stroke:#333}#mermaid-svg-rJrlppQamll6XgFF .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-rJrlppQamll6XgFF .labelText,#mermaid-svg-rJrlppQamll6XgFF .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-rJrlppQamll6XgFF .loopText,#mermaid-svg-rJrlppQamll6XgFF .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-rJrlppQamll6XgFF .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-rJrlppQamll6XgFF .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-rJrlppQamll6XgFF .noteText,#mermaid-svg-rJrlppQamll6XgFF .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-rJrlppQamll6XgFF .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-rJrlppQamll6XgFF .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-rJrlppQamll6XgFF .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-rJrlppQamll6XgFF .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-rJrlppQamll6XgFF .section{stroke:none;opacity:0.2}#mermaid-svg-rJrlppQamll6XgFF .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-rJrlppQamll6XgFF .section2{fill:#fff400}#mermaid-svg-rJrlppQamll6XgFF .section1,#mermaid-svg-rJrlppQamll6XgFF .section3{fill:#fff;opacity:0.2}#mermaid-svg-rJrlppQamll6XgFF .sectionTitle0{fill:#333}#mermaid-svg-rJrlppQamll6XgFF .sectionTitle1{fill:#333}#mermaid-svg-rJrlppQamll6XgFF .sectionTitle2{fill:#333}#mermaid-svg-rJrlppQamll6XgFF .sectionTitle3{fill:#333}#mermaid-svg-rJrlppQamll6XgFF .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-rJrlppQamll6XgFF .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-rJrlppQamll6XgFF .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-rJrlppQamll6XgFF .grid path{stroke-width:0}#mermaid-svg-rJrlppQamll6XgFF .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-rJrlppQamll6XgFF .task{stroke-width:2}#mermaid-svg-rJrlppQamll6XgFF .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-rJrlppQamll6XgFF .taskText:not([font-size]){font-size:11px}#mermaid-svg-rJrlppQamll6XgFF .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-rJrlppQamll6XgFF .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-rJrlppQamll6XgFF .task.clickable{cursor:pointer}#mermaid-svg-rJrlppQamll6XgFF .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-rJrlppQamll6XgFF .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-rJrlppQamll6XgFF .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-rJrlppQamll6XgFF .taskText0,#mermaid-svg-rJrlppQamll6XgFF .taskText1,#mermaid-svg-rJrlppQamll6XgFF .taskText2,#mermaid-svg-rJrlppQamll6XgFF .taskText3{fill:#fff}#mermaid-svg-rJrlppQamll6XgFF .task0,#mermaid-svg-rJrlppQamll6XgFF .task1,#mermaid-svg-rJrlppQamll6XgFF .task2,#mermaid-svg-rJrlppQamll6XgFF .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-rJrlppQamll6XgFF .taskTextOutside0,#mermaid-svg-rJrlppQamll6XgFF .taskTextOutside2{fill:#000}#mermaid-svg-rJrlppQamll6XgFF .taskTextOutside1,#mermaid-svg-rJrlppQamll6XgFF .taskTextOutside3{fill:#000}#mermaid-svg-rJrlppQamll6XgFF .active0,#mermaid-svg-rJrlppQamll6XgFF .active1,#mermaid-svg-rJrlppQamll6XgFF .active2,#mermaid-svg-rJrlppQamll6XgFF .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-rJrlppQamll6XgFF .activeText0,#mermaid-svg-rJrlppQamll6XgFF .activeText1,#mermaid-svg-rJrlppQamll6XgFF .activeText2,#mermaid-svg-rJrlppQamll6XgFF .activeText3{fill:#000 !important}#mermaid-svg-rJrlppQamll6XgFF .done0,#mermaid-svg-rJrlppQamll6XgFF .done1,#mermaid-svg-rJrlppQamll6XgFF .done2,#mermaid-svg-rJrlppQamll6XgFF .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-rJrlppQamll6XgFF .doneText0,#mermaid-svg-rJrlppQamll6XgFF .doneText1,#mermaid-svg-rJrlppQamll6XgFF .doneText2,#mermaid-svg-rJrlppQamll6XgFF .doneText3{fill:#000 !important}#mermaid-svg-rJrlppQamll6XgFF .crit0,#mermaid-svg-rJrlppQamll6XgFF .crit1,#mermaid-svg-rJrlppQamll6XgFF .crit2,#mermaid-svg-rJrlppQamll6XgFF .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-rJrlppQamll6XgFF .activeCrit0,#mermaid-svg-rJrlppQamll6XgFF .activeCrit1,#mermaid-svg-rJrlppQamll6XgFF .activeCrit2,#mermaid-svg-rJrlppQamll6XgFF .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-rJrlppQamll6XgFF .doneCrit0,#mermaid-svg-rJrlppQamll6XgFF .doneCrit1,#mermaid-svg-rJrlppQamll6XgFF .doneCrit2,#mermaid-svg-rJrlppQamll6XgFF .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-rJrlppQamll6XgFF .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-rJrlppQamll6XgFF .milestoneText{font-style:italic}#mermaid-svg-rJrlppQamll6XgFF .doneCritText0,#mermaid-svg-rJrlppQamll6XgFF .doneCritText1,#mermaid-svg-rJrlppQamll6XgFF .doneCritText2,#mermaid-svg-rJrlppQamll6XgFF .doneCritText3{fill:#000 !important}#mermaid-svg-rJrlppQamll6XgFF .activeCritText0,#mermaid-svg-rJrlppQamll6XgFF .activeCritText1,#mermaid-svg-rJrlppQamll6XgFF .activeCritText2,#mermaid-svg-rJrlppQamll6XgFF .activeCritText3{fill:#000 !important}#mermaid-svg-rJrlppQamll6XgFF .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-rJrlppQamll6XgFF g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-rJrlppQamll6XgFF g.classGroup text .title{font-weight:bolder}#mermaid-svg-rJrlppQamll6XgFF g.clickable{cursor:pointer}#mermaid-svg-rJrlppQamll6XgFF g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-rJrlppQamll6XgFF g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-rJrlppQamll6XgFF .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-rJrlppQamll6XgFF .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-rJrlppQamll6XgFF .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-rJrlppQamll6XgFF .dashed-line{stroke-dasharray:3}#mermaid-svg-rJrlppQamll6XgFF #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-rJrlppQamll6XgFF #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-rJrlppQamll6XgFF #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-rJrlppQamll6XgFF #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-rJrlppQamll6XgFF #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-rJrlppQamll6XgFF #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-rJrlppQamll6XgFF #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-rJrlppQamll6XgFF #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-rJrlppQamll6XgFF .commit-id,#mermaid-svg-rJrlppQamll6XgFF .commit-msg,#mermaid-svg-rJrlppQamll6XgFF .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-rJrlppQamll6XgFF .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-rJrlppQamll6XgFF .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-rJrlppQamll6XgFF g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-rJrlppQamll6XgFF g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-rJrlppQamll6XgFF g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-rJrlppQamll6XgFF g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-rJrlppQamll6XgFF g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-rJrlppQamll6XgFF g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-rJrlppQamll6XgFF .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-rJrlppQamll6XgFF .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-rJrlppQamll6XgFF .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-rJrlppQamll6XgFF .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-rJrlppQamll6XgFF .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-rJrlppQamll6XgFF .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-rJrlppQamll6XgFF .edgeLabel text{fill:#333}#mermaid-svg-rJrlppQamll6XgFF .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-rJrlppQamll6XgFF .node circle.state-start{fill:black;stroke:black}#mermaid-svg-rJrlppQamll6XgFF .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-rJrlppQamll6XgFF #statediagram-barbEnd{fill:#9370db}#mermaid-svg-rJrlppQamll6XgFF .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-rJrlppQamll6XgFF .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-rJrlppQamll6XgFF .statediagram-state .divider{stroke:#9370db}#mermaid-svg-rJrlppQamll6XgFF .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-rJrlppQamll6XgFF .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-rJrlppQamll6XgFF .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-rJrlppQamll6XgFF .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-rJrlppQamll6XgFF .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-rJrlppQamll6XgFF .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-rJrlppQamll6XgFF .note-edge{stroke-dasharray:5}#mermaid-svg-rJrlppQamll6XgFF .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-rJrlppQamll6XgFF .error-icon{fill:#522}#mermaid-svg-rJrlppQamll6XgFF .error-text{fill:#522;stroke:#522}#mermaid-svg-rJrlppQamll6XgFF .edge-thickness-normal{stroke-width:2px}#mermaid-svg-rJrlppQamll6XgFF .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-rJrlppQamll6XgFF .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-rJrlppQamll6XgFF .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-rJrlppQamll6XgFF .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-rJrlppQamll6XgFF .marker{fill:#333}#mermaid-svg-rJrlppQamll6XgFF .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-rJrlppQamll6XgFF {color: rgba(0, 0, 0, 0.75);font: ;}

A
B
C
D
E
F

相关术语的概念

父节点(根):在树结构中,一个节点只有一个前件,则这个前件是该节点的父节点。没有父节点的节点只有一个,称为树的根节点,简称树的根。
例:A是该树的根节点;A是C的父节点。

子节点和叶子节点:在树结构中,一个节点可以有多个后件,这些后件称为该节点的子节点。没有后件的节点是叶子节点
例:F,D,E均为叶子节点;D和E是B的子节点。

:在树结构中,一个节点拥有的后件个数称为该节点的度,所有节点中最大的度就是树的度
例:B的度为2;A的度为2;树的度为2.

深度:定义树结构的根节点的层次为1,其他节点的层次为其父节点的层次加1。树的最大层次称为树的深度
例:B,C在第二层;D,E,F在第三层。

子树:在树中,以某节点的一个子节点为根构成的树称为该节点的一棵子树。
例:节点A有两棵子树;B有两棵子树。

  • 树中节点数为所有节点的度之和再加1。

2.6.2 二叉树

二叉树的定义:与树的结构类似。

特点

  • 1.二叉树可以为空,空的二叉树没有节点,非空二叉树有且只有一个根节点
  • 每个节点最多只有两个子树,即二叉树中不存在度大于2的节点
  • 二叉树的子树有顺序之分,不能任意颠倒

性质

  • 在二叉树的第k层上,最多只有2k-1(k>=0)个节点
  • 深度为m的二叉树上,最多只有2m-1个节点
  • 对任意二叉树,度为0的节点(叶子节点)总比度为2的节点多一个
  • 具有n个节点的二叉树,其深度至少为[log2n]+1。([log2n]意思为取整数部分)

满二叉树和完全二叉树

满二叉树是指除去最后一层的节点,其他所有的节点都有两个子节点的二叉树。即在第k层有2k-1(k>=0)个节点,整个树有2m-1个节点。

完全二叉树是指除去最后一层的节点,其他每层的节点数均达到最大值,在最后一层只缺少最右侧的若干节点的二叉树。(满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树)

  • 特点

    1. 叶子节点只可能在最后两层出现
    1. 对于任意完全二叉树,若其右子树的深度为m,则该节点左子树的深度为m+1或者m。
    1. 具有n个节点的完全二叉树的深度为[log2n]+1。

二叉树的存储结构
计算机中,二叉树通常采用链式存储结构。用于存储二叉树中元素的存储节点由数据域和指针域两部分组成。由于每一个元素可以有两个后件,所有用于存储二叉树的存储节点的指针域有两个,一个指向左子节点,另一个指向右子节点,分别称为左指针域和右指针域。(每个存储节点有两个指针域,所以二叉树的链式存储结构又称为二叉链表

二叉树的遍历
二叉树的遍历是指不重复地访问二叉树中的所有节点。
在遍历二叉树的过程中,一般先遍历左子树,再遍历右子树。在先左后右的原则下,根据访问根节点的不同次序,二叉树的遍历可以分为三种。前序遍历,中序遍历,后序遍历。

2.7 查找

顺序查找
基本思想:从线性表的第一个元素开始,依次将线性表中元素与之比较。
最多n次。
二分法查找
基本思想:
对于长度为n的有序线性表,查找X元素步骤。
1.如果X的值和中间项的值相等,则查找成功,结束查找;
2.若X的值比中间项的值大,则在线性表的后半部分再次用二分法查找;
3.若X的值比中间项的值小,则在线性表的前半部分再次用二分法查找。
条件:线性表示有序表;是顺序存储结构
最多log2n次。

2.8 排序

交换类排序
1.冒泡排序:在数据排列中,对于某个元素,若其后有个元素小于它,则表明存在一个逆序。冒泡排序的基本思想就是不断地两两交换,知道消去全部的逆序。
最多n(n−1)2\frac{n(n-1)}{2}2n(n−1)​次。
2.快速排序:在待排序的n个元素中,取一个元素K作为分割标准,把比K小的元素放在K前,比K大的元素放在K后。将一个线性表分为两个线性表,这样称为一趟排序,再分别在每个表里重复进行,直到子线性表的长度为1。
最多n(n−1)2\frac{n(n-1)}{2}2n(n−1)​次,但效率远大于冒泡排序。

插入类排序
1.简单插入排序:将一个有n个元素线性表看两个线性表,一个为有序表,一个为无序表。初始状态下,有序表只有一个元素,无序表有n-1个。每次从无序表取出一个元素,根据该元素大小插入在顺序表的合适位置。最后顺序表元素n个,无序表0个,排序结束。
最多n(n−1)2\frac{n(n-1)}{2}2n(n−1)​次。
2.希尔排序:先设取一个整数d1作为增量(d1<n),将全部数据元素分为d1组,在组内进行简单插入排序(分组时位置不变还在原位上,只是记录该组的位置,若简单插入排序需要改变位置,就对应位置交换即可);再取第二个增量d2(d2<d1)继续上述步骤,直到增量为1,即全为一组,排序完成。

效率与选取的增量有关,最多nr(1<r<2)次。

选择类排序
1.简单选择排序:先将全部n个数据元素中最小的元素选择出来,把它和第一个元素交换位置;再将剩下n-1个元素中选出最小的元素,把它和第二个元素交换位置;重复操作,直到全部元素有序为止。
最多n(n−1)2\frac{n(n-1)}{2}2n(n−1)​次。
2.堆排序:是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。
最多nlog2n次。

3.程序设计基础

3.1 程序设计风格

清晰第一,效率第二
注重和考虑:
1.源程序文档化;
2.数据说明风格:规范次序,安排有序,用注释解释复杂语句;
3.语句结构:格式整齐,多使用库函数;
4.输入和输出:检验输入输出的数据的合法性,设计良好的输出报表格式。

3.2 结构化程序设计

原则:自顶而下,逐步求精,模块化和限制使用goto语句。
优点:程序易于理解,使用和维护;提高效率

3.3 面向对象方法

1.优点:与人类习惯的思维方法一致;稳定性好;可重用性好;可维护性好;便于编程大型软件产品。
2.相关基本概念:
对象
内含两部分:数据,方法
数据:又称属性,对象包含的信息,表示对象的状态。
方法:又称操作,对象可以进行的操作,表示对象的行为。

  • 特点:标识唯一性;分类性;多态性;封装性;模块独立性好。


是具有共同属性,行为的对象的集合。是一个抽象描述。反映的是该类所有对象共有的性质。一个具体的对象是类的一个具体实例。
消息
消息传递是对象间通信的手段,一个对象向另一个对象请求其服务。
继承
类与类之间可以继承,一个子类可以完全继承其父类中的描述(数据和操作),并且还可以自己定义自己的描述。具有传递性。

4.软件工程基础

  • 基本概念:
    软件:计算机软件是由数据,程序和相关文档组成的完整集合。和计算机硬件一起组成计算机系统。
    特点:1.是一种逻辑实体,有抽象性。2.没有明显的制作过程。3.试用期间不存在磨损老化。4.依赖硬件和环境。5.复杂,成本高。6.软件开发涉及诸多社会因素。
    分类:按功能分为系统软件,应用软件,支撑软件(介于系统软件和应用软件之间,协助用户开发软件的工具软件)
    软件工程:是试图使用工程、科学、数学的原理和方法研制、维护计算机软件的有关技术和管理方法,是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准及工序。

5.数据库设计基础

5.1 数据库

基本概念

  • 数据:描述事务的符号记录称为数据,数据库中的数据是具有长期保存的特性,通常被称为持久性数据;而把一般存放在计算机中的数据称为临时性数据。
  • 数据库:是指长期存放的数据的、有组织的、可共享的数据集合
  • 数据库管理系统:是数据库系统的核心,是一个系统软件,负责数据库中的数据组织、数据操纵,数据维护、控制及保护,数据保护等。
  • 数据库系统:由数据库、数据库管理系统、数据库管理员、硬件平台、软件平台组成。

数据库的基本特性(与人工管理和文件系统比较)
1.数据集成性
2.高共享、低冗余度
3.数据独立性:数据独立于应用程序
4. 数据统一管理和控制

数据库的内部结构体系
数据库系统在其内部分为三级模式和两级映射。

三级模式:概念模式、内模式、外模式。
概念模式:也称为模式,是对数据库系统中全局数据逻辑结构的描述,是全体用户的公共数据视图。
内模式:也成为物理模式,是数据物理结构和存储方式的描述。
外模式:也称为子模式或者用户模式,是用户的数据视图,即用户所能看见和使用的局部数据的逻辑结构和特征描述。通常是概念模式的子集。

(三个模式体现了模式的3个不同环境和要求,一个数据库只有一个内模式和一个概念模式,可以有多个外模式。

两级映射:在概念模式和外模式的映射、概念模式和内模式的映射。保证了数据库中数据的独立性(逻辑、物理方面)

5.2 数据模型

数据模型:是对数据特征的抽象。即对现实建立具体的模型、描述或者表示。建立数据模型的目的是建立数据库来处理数据。

数据模型的三要素:数据结构、数据操作和数据约束。
1.数据结构:主要描述数据的类型、内容、性质以及数据之间的联系等。
2.数据操作:主要描述数据结构上的数据操作和操作类型。
3.数据约束:主要描述数据结构内部数据之间的语法语义关系,它们之间的制约与依存关系,以及数据变化的规则。

数据模型的类型
1.概念模型:着重对现实世界复杂事物的描述。如:面向对象模型,实体联系模型(E-R模型);
2.数据模型:面向数据库系统的模型,着重于数据库系统一级的实现;
3.物理模型:面向计算机物理实现的模型。给出数据结构在计算机物理结构的表示。

E-R模型(广泛使用的概念模型)
基本概念:实体、属性和联系
实体:客观存在并且可以相互区别的事物,可以是一个客观的物体,也可以是一个抽象的事件。
属性:描述事物的特性称为属性。
联系:实体之间的对应关系,反映现实世界事物之间的相关联系。

E-R模型的构成成分是实体集、属性和联系集
其表示方法如下:
(1) 实体集用矩形框表示,矩形框内写上实体名。
(2) 实体的属性用椭圆框表示,框内写上属性名,并用无向边与其实体集相连。
(3) 实体间的联系用菱形框表示,联系以适当的含义命名,名字写在菱形框中,用无向连线将参加联系的实体矩形框分别与菱形框相连,并在连线上标明联系的类型,即1—1、1—N或M—N。
因此,E-R模型也称为E-R图。

原则
从数据需求分析中分析出系统的实体属性图,需要遵循三范式原则,对实体之间的依赖关系进行了整合,得出系统E-R图。
说明:菱形表示实体之间的关系,用矩形表示实体,用无向直线把菱形与有关实体连接,在直线上标明联系的类型。用椭圆表示实体的属性,并用无向直线把实体与属性联系起来。

5.3 关系代数

5.3.1 关系模型

关系模型的数据结构
最常用的数据结构之一。其数据结构非常单一,在关系模型中,现实世界中的实体之间的各种联系均用关系表示。

关系模型的基本术语
关系:关系模型采用二维表来表示关系,简称表,由表框架和表的元组成,一个二维表就是一个关系。
属性:二维表的一列称为属性;属性个数称为属性元数。
值域:每个属性的取值范围
元组:二维表的一行称为元组。
候选码:二维表中能唯一标识元组的最小属性集。
主键或主码:若一个二维表有多个候选码,则选定一个作为主码供用户使用
外键或外码:若表M中的某属性集是表N的候选键或者主键,则称该属性集是表M的外键或者外码。

关系具有以下性质
1.元组个数有限性
2.元组唯一性
3.元组的次序无关性
4.元组中的分量是不可分割的基本数据项
5.属性名称的唯一性
6.属性次序的无关性
7.属性值域的统一性

5.3.2 关系代数

即关系和关系之间的运算,结果也是关系(即表)。
1.差运算
关系R和关系S经过差运算,得到关系T由属于R但不属于S的元组构成。记为T=R-S

2.交运算
R和S的交是由既属于R又属于S的元组组成的集合,运算符为∩。记为T=R∩S。 R∩S=R-(R-S)。

3.并运算
有两个关系R和S,它们具有相同的结构。R和S的并是由属于R或属于S的元组组成的集合,运算符为∪。记为T=R∪S。

4.笛卡尔积运算

步骤:(R表为n元关系p个元组;S表为m元关系q个元组)

  1. 先将两个表的标题(属性)合并,如上图:ABCDEF;
  2. 将R表中第一行和S表第一行组成新的第一行;
  3. 将R表中第一行和S表第一行组成新的第二行;
    (之后同上,如此得到新关系T为n+m元关系,p+q个元组)

5.投影运算
从关系模式中挑选若干属性组成新的关系称为投影。这是从列的角度进行的运算,相当于对关系进行垂直分解。

6.选择运算
从关系中找出满足给定条件的那些元组称为选择。其中的条件是以逻辑表达式给出的,值为真的元组将被选取。这种运算是从水平方向抽取元组。

7.除运算
在关系代数中,除法运算可理解为笛卡尔积的逆运算。
设被除关系R为m元关系,除关系S为n元关系,那么它们的商为m-n元关系,记为R÷S。商的构成原则是:将被除关系R中的m-n列,按其值分成若干组,检查每一组的n列值的集合是否包含除关系S,若包含则取m-n列的值作为商的一个元组,否则不取。

C语言二级公共基础知识选择题高频考点**粗略~粗略~粗略个人笔记**相关推荐

  1. c语言二级程序设计题难吗,c语言二级公共基础知识试题特点

    二级C一直以来是整个二级考试中试题最多.难度最大.报考人数也最多的考试,以下是由学习啦小编整理关于c语言二级公共基础知识试题特点的内容,希望大家喜欢! 从2008年4月份开始笔试由原来120分钟减少到 ...

  2. 二级公共基础知识_计算机二级选择题(公共基础知识)

    在这一期的文章主要以计算机二级选择题的公共基础知识进行讲解. 在计算机二级考试当中,选择题中的二级公共基础知识是必考的部分.很多考生对计算机二级的公共基础知识选择题有很多不解.二级公共基础知识选择题主 ...

  3. 全国计算机等级考试一本通关六合一,2014年全国计算机等级考试一本通关六合一 二级公共基础知识与C语言程序设计 无纸化考试专用...

    <2014年全国计算机等级考试一本通关六合一 二级公共基础知识与C语言程序设计 无纸化考试专用> 前言 最新版考试大纲 各考点考核命题分析表 第1章 公共基础知识 知识清单1 考点1 算法 ...

  4. 计算机二级c语言公共基础题,计算机二级C语言笔试公共基础知识课后习题及答案...

    全国计算机等级考试二级公共基础知识课后习题及答案1 第一章数据结构与算法 一.选择题 1.算法的时间复杂度是指( ) A. 执行算法程序所需要的时间 B. 算法程序的长度 C. 算法执行过程中所需要的 ...

  5. 全国计算机等级考试二级公共,全国计算机等级考试二级公共基础知识.

    全国计算机等级考试二级公共基础知识. (106页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 全国计算机等级考试National Com ...

  6. python二级公共基础知识

    python二级公共基础知识 一.算法和数据结构 算法及其基本特征: 算法是对解题方法的准确而完整的描述. 算法的四个基本特征:可行性,确定性,有穷性,拥有足够的情报.  算法的复杂度: 算法的时间复 ...

  7. 计算机二级公共基础知识证书,计算机二级公共基础知识

    计算机二级公共基础知识 下面是小编收集整理的计算机二级公共基础知识,希望对您有所帮助!如果你觉得不错的话,欢迎分享! 第一章 数据结构与算法 1.1算法 算法:是指解题方案的准x而完整的描述. 算法不 ...

  8. 计算机二级公共基础知识2017,2017年计算机二级公共基础知识基础试题

    2017年计算机二级公共基础知识基础试题 随着微处理机的迅速发展,计算机广泛应用于工业.农业.文化教育.卫生保健.服务行业.社会公用事业等.yjbys小编收集了一些关于计算机二级公共基础知识基础试题, ...

  9. 全国计算机等级考试——二级公共基础知识辅导讲义 卿勇军主讲

    全国计算机等级考试--二级公共基础知识辅导讲义 卿勇军主讲 第一章数据结构与算法 1.1算法 1.算法是指解题方案的准确而完整的描述.换句话说,算法是对特定问题求解步骤的一种描述. *:算法不等于程序 ...

最新文章

  1. 现代密码学5.1--哈希函数定义
  2. springboot----静态页面templates文件访问
  3. linux- root管理员权限
  4. OpenShift 4 - 基于CPU负载和网络负载的HPA
  5. MOSS中如何自定义WebService
  6. Flutter布局锦囊---验证码倒计时
  7. php开发面试题---面试常用英语(你能介绍你自己吗?)
  8. linux 系统对信号的处理,Linux下的信号处理函数总结
  9. 用C++实现跨平台游戏开发之Irrlicht引擎
  10. 软件测试工程师绩效考核细则,软件测试工程师绩效考核方案
  11. git 仓库分支多文件夹管理
  12. 去除html双击后选中有蓝色背景
  13. 免费阅读正在杀死腾讯阅文?
  14. Centos的GPT分区 硬盘超过2T
  15. 算法——AcWing算法提高课中代码和题解
  16. 使用计算机辐射最大,流言终结者:我们身边的辐射有多大?
  17. plink, vcftool计算等位基因频率(allele frequency,vcf)
  18. code total Lines
  19. mac电脑Safari/Chrome浏览器打不开京东、淘宝等网站的解决办法
  20. 手机阅读行业SWOT分析

热门文章

  1. 这15个Vue自定义指令,让你的项目开发爽到爆
  2. 使用C语言访问MySQL数据 —— 执行SQL语句(2)
  3. python基于php+MySQL的网络精品课程教学平台
  4. JS追加元素和获取兄弟元素、父元素的方法
  5. 谁家的宣传口号最赞?
  6. 以太坊微支付通道原理与实现
  7. Python分析《我不是药神》豆瓣评论
  8. elmo驱动器用stm32单片机控制
  9. 初识互联网敏捷的三大支柱
  10. 数据挖掘复习资料2021.12.15