数据结构=数据元素+数据元素之间的关系
线性结构:有且只有一个根结点,且各个元素前后相连,不可分叉
根节点:没有前件
叶节点:没有后件
线性结构:只有一个根结点,各数据前后相连(每个元素最多一个前件一个后件)
关系代数
差(r - s):在关系r中去掉与s重合的部分
并:
交
笛卡尔积:r中每一条记录分别于s中每一条组合
投影(Π):筛选表中一部分列
选择(σ):筛选表中一部分行
除法()
连接:在笛卡尔积的结果中,取满足条件的行
栈和队列
栈的出入规则:先进后出,后进先出
队列出入规则:先进先出,后进后出
入队:插入数据
出队:删除数据
栈的存储空间 s(1:30):从一开始数有30个空间
top:
若top<存储序号最小值
则栈底为top
若top>存储序号最大值(m)
则栈底为m
树和二叉树
树
树中每个结点只有一个前件
没有前件的结点只有一个,成为根结点,简称树的根
每一个结点可以有多个后件,称为该结点的子结点
没有后件的结点称为叶子结点
一个结点所拥有的后件个数为它的度,结点中最大的度称为树的度
最大层次称为树的深度
度为0是叶结点
结点总个数=每种度的结点个数之和
结点总个数 =所有度的和+1
二叉树
第k层上,最多有2的k-1次方个结点
深度为m的二叉树,最多有2的m次方减一个结点
度为0的结点,比度为2 的结点多一个
具有n个结点的二叉树,深度至少为log2n+1
二叉树是指树中节点的度不大于2的有序树
满二叉树
每一层的所有结点都有2个子结点(除叶子外)
每一层的结点都到了最大
完全二叉树
前几层保持最后一层可以删除一些结点,且依次按照一定的规律删除,
从左往右依次删除
完全二叉树中度为1的结点只有两种可能:0或1
遍历
![](https://i-blog.csdnimg.cn/blog_migrate/8b5dc46c67ce60f3826373e7d0c71ee1.png)
前序遍历(根左右)
ABC
中序遍历(左根右)
BAC
后序遍历(左右根)
BCA
杂项积累
结构化程序基本原则:①模块化②自顶向下③逐步求精④限制使用goto语句
程序中划分模块的准则:高内聚低耦合
函数指针定义: 返回值类型(*指针类型名)([形参列表]) 赋值 pf=&fun
E-R图中菱形表示联系,矩形表示实体,椭圆形表示属性
快速排序和冒泡排序的时间复杂度为(n²)
可封装是面向对象思想
算法时间复杂度是指执行算法所需要的计算工作量
算法的空间复杂度是指算法在执行过程中所需要的计算机存储空间,包括算法程序所占空间