数据结构期末复习速成,没有很详细的知识点,只是对照常考的题目提醒,把关键的一些基础题目设计到的知识点重新梳理了一遍,静下心把这些都快速的过一遍,相信你能收获不少,每天复习一点就会持续更新一点!期末不挂科!
数据
数据元素:数据的基本组织单位
数据项:数据元素的组成部分
数据对象:具有相同性质的数据元素的集合
数据的结构分为数据逻辑结构和数据存储结构
4种基本数据逻辑结构类型:
集合
线性结构
数据元素之间是一对一关系
树形结构
数据元素之间是一对多关系
图形结构
数据元素之间是多对多关系,任意两个结点都可以邻接
包括数据元素的表示和数据元素之间的关系的表示
4中基本数据存储方式
是一种最基本的数据结构,
在计算机中可以用顺序存储和链式存储两种存储结构表示
特点:
特点:
一个结点中只包含一个指针域的链表为单链表
单链表中逻辑上相邻的元素的物理位置不一定相邻
栈和队列属于线性结构,可以看成是特殊的线性表
(栈插入删除操作在栈顶,队列插入在队尾,删除在队首)
顺序栈和链栈
特性:后进先出(羽毛球筒)
出栈序列:后出先入逆序
顺序队和链队
循环队列结构可以解决非循环队列的“假溢出”问题
特性:先进先出
字符串(串)是一种特殊的线性表,串中数据元素类型一定是字符型
子串:串中任意个连续的字符组成的子序列
位序号:0到n
两个串相等的充要条件:长度相等且对应位置的字符也相等
长度为0的串是空串,即空串不包含任何字符
包含一个及以上空白(空格)字符的串是空白串
即查找定位操作:在当前串中寻找子串的过程(找到返回首字符在主串中的位序号,失败返回-1)
稀疏矩阵
定义:具有较多零元素且非零元素的分布无规律的矩阵
稀疏矩阵的压缩存储的原则是非零元素分配存储空间,零元素不分配存储空间
压缩方式:三元组的数组存储结构和十字链表存储结构
特点:稀疏矩阵压缩后和直接采用二维数组存储相比会失去随机存取的特性
树根节点没有前驱结点,其余每个结点有且仅有1个前驱结点
叶子节点没有后继结点,其余每个结点可以有任意多个后继结点
结点的层次:从0开始
数的深(高)度:从1开始
双亲结点:即父结点
数的度:所有结点度的最大值
结点的度:几个儿子几个度
Kruskal
把边从小到大排序,每次选一条边,只要不构成回路就行
Prim
随机从一点出发,从邻接的边中选最小边,然后得到一个点,两个点邻接的边再选最小,以此类推
Dijkstra
Floyd
从源点到汇点最长路径的长度(完成整个工程的最短时间)
先根遍历DLR:根左右
中根遍历LDR:左根右
后根遍历LRD:左右根
提供二叉树的两个遍历序列,只要其中一个是中根遍历就可 以唯一确定该二叉树
带权路劲长度最小的二叉树
画图结点是用加法区别于离散的哈斯图
高度为5的二叉树最多有31个结点(满二叉树,1+2+4+8+16)
高度为5的二叉树至少有5个结点(单分支树)
高度为8的完全二叉树至少有64个结点(高度8,即共7层,求最少就是6层全满+7层一个,26=64)
高度为8的完全二叉树至多有128个结点(高度为8,即共7层,全满,27=128)
引入线索二叉树的目的是加快查找结点的前驱或者后继结点的速度
图是一种非线性结构
简单路径:顶点不重复出现的路径
图的遍历:从图中某顶点出发以某种顺序访问图中所有顶点且仅访问一次
连通图的生成树是图的极小连通子图,包含图中全部顶点,但只有构成一棵树的边
(一个连通图的生成树不是唯一的)
强连通图:在有向图中,任意两个点均连通的图
在无向图中,结点的度数之和等于变数的2倍
n个结点的无向图最多有 n(n-1)/2 条边
n个结点的无向图最少有 0 条边
n个结点的有向图最多有 n(n-1) 条边
n个结点无向连通图至少有 n-1 条边
n个结点的连通图的生成树有 n-1 条边
n个结点的有向图,构成强连通图至少有 **n ** 条边(一个环)
一个n个顶点的无向图,采用邻接矩阵表示,大小为 n2
邻接矩阵是用来表示点与点之间相邻关系的矩阵(相邻为1,不相邻为0)
无向图的邻接矩阵是对称矩阵,有向图的邻接矩阵一般不对称
图的深度优先遍历必须列不一定是唯一的。
排序的稳定性:经过排序后,关键字相同的元素保持原顺序中的相对位置不变
{5,2,3,3,1}排序后两个3的位置没有变化就是稳定的,变化了就是不稳定的,两个3有区别
直接插入排序(稳定)
希尔排序(不稳定)
冒泡排序(稳定)
快速排序(不稳定)
直接(简单)选择排序(不稳定)
树形选择排序
堆排序(不稳定)
顺序查找既适用于顺序表也适用于单链表,对表中数据元素次序无要求
二分查找必须是顺序存储的有序表
数据的组织方式为数据分成若干块,每块内数据不必有序,但块间必须有序,每块内的最大(或最小)关键字组成索引块