概述
数据结构期末复习速成,没有很详细的知识点,只是对照常考的题目提醒,把关键的一些基础题目设计到的知识点重新梳理了一遍,静下心把这些都快速的过一遍,相信你能收获不少,每天复习一点就会持续更新一点!期末不挂科!
数据和数据结构
定义
数据
数据元素:数据的基本组织单位
数据项:数据元素的组成部分
数据对象:具有相同性质的数据元素的集合
数据的结构分为数据逻辑结构和数据存储结构
数据逻辑结构
4种基本数据逻辑结构类型:
-
集合
-
线性结构
数据元素之间是一对一关系
-
树形结构
数据元素之间是一对多关系
-
图形结构
数据元素之间是多对多关系,任意两个结点都可以邻接
数据存储结构(物理结构)
包括数据元素的表示和数据元素之间的关系的表示
4中基本数据存储方式
- 顺序存储
- 链式存储
- 索引存储
- 哈希(散列)存储
线性表
是一种最基本的数据结构,
在计算机中可以用顺序存储和链式存储两种存储结构表示
顺序表
特点:
- 逻辑上相邻的数据元素在物理存储位置上也相邻
- 存储密度高,需要先分配足够的存储空间
- 便于随机存取(一中存储结构具有随机存取特性是指,对于给定的序号i,在O(1)时间内找到对应的元素值)
- 插入删除操作不便
链表
特点:
- 逻辑上相邻的数据元素在物理存储位置上不一定相邻
- 只能进行顺序存取
- 便于执行插入删除操作
单链表
一个结点中只包含一个指针域的链表为单链表
单链表中逻辑上相邻的元素的物理位置不一定相邻
双向链表
循环链表
栈和队列
栈和队列属于线性结构,可以看成是特殊的线性表
(栈插入删除操作在栈顶,队列插入在队尾,删除在队首)
栈
顺序栈和链栈
特性:后进先出(羽毛球筒)
出栈序列:后出先入逆序
队列
顺序队和链队
循环队列结构可以解决非循环队列的“假溢出”问题
特性:先进先出
串
定义
字符串(串)是一种特殊的线性表,串中数据元素类型一定是字符型
子串:串中任意个连续的字符组成的子序列
位序号:0到n
两个串相等的充要条件:长度相等且对应位置的字符也相等
长度为0的串是空串,即空串不包含任何字符
包含一个及以上空白(空格)字符的串是空白串
模式匹配操作
即查找定位操作:在当前串中寻找子串的过程(找到返回首字符在主串中的位序号,失败返回-1)
数组
稀疏矩阵
定义:具有较多零元素且非零元素的分布无规律的矩阵
稀疏矩阵的压缩存储的原则是非零元素分配存储空间,零元素不分配存储空间
压缩方式:三元组的数组存储结构和十字链表存储结构
特点:稀疏矩阵压缩后和直接采用二维数组存储相比会失去随机存取的特性
树
定义
树根节点没有前驱结点,其余每个结点有且仅有1个前驱结点
叶子节点没有后继结点,其余每个结点可以有任意多个后继结点
结点的层次:从0开始
数的深(高)度:从1开始
双亲结点:即父结点
数的度:所有结点度的最大值
结点的度:几个儿子几个度
求最小生成树
Kruskal
把边从小到大排序,每次选一条边,只要不构成回路就行
Prim
随机从一点出发,从邻接的边中选最小边,然后得到一个点,两个点邻接的边再选最小,以此类推
求某点到其余顶点的最短路径
Dijkstra
求每一对顶点之间的最短路径
Floyd
关键路径
从源点到汇点最长路径的长度(完成整个工程的最短时间)
二叉树
二叉树的遍历
先根遍历DLR:根左右
中根遍历LDR:左根右
后根遍历LRD:左右根
提供二叉树的两个遍历序列,只要其中一个是中根遍历就可 以唯一确定该二叉树
哈夫曼树(最优二叉树)
带权路劲长度最小的二叉树
画图结点是用加法区别于离散的哈斯图
二叉树的性质
- 第i层上的结点数最多为2i
- 深度为h的二叉树中最多有2h-1个结点
- 叶子结点数=2度结点数+1
- n个结点的完全二叉树,深度为log2n+1
- 具有n个结点的二叉树有(2n)!/n!(n+1)!种形态(卡特兰数Catalan数)
- 所有度数之和=结点数 - 1
小练习
高度为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有区别
内排序
插入排序
直接插入排序(稳定)
希尔排序(不稳定)
交换排序
冒泡排序(稳定)
快速排序(不稳定)
选择排序
直接(简单)选择排序(不稳定)
树形选择排序
堆排序(不稳定)
归并排序、基数排序(稳定)
外排序
查找
顺序查找
顺序查找既适用于顺序表也适用于单链表,对表中数据元素次序无要求
折半查找
二分查找必须是顺序存储的有序表
分块查找
数据的组织方式为数据分成若干块,每块内数据不必有序,但块间必须有序,每块内的最大(或最小)关键字组成索引块
哈希表查找
常用的哈希函数
- 除留取余法
- 直接地址法
- 数字分析法
- 平方取中法
- 折叠法
- 随机数法
处理冲突的方法
- 开放地址法(线性探测法、二次探测法、双哈希函数探测法)
- 链地址法
- 公共区溢出法
- 再哈希法
杂知识点
- 递归算法转换为非递归算法时,通常借助于栈来实现
最后
以上就是帅气缘分为你收集整理的数据结构期末复习速成数据和数据结构线性表栈和队列串数组树二叉树图排序内排序外排序查找杂知识点的全部内容,希望文章能够帮你解决数据结构期末复习速成数据和数据结构线性表栈和队列串数组树二叉树图排序内排序外排序查找杂知识点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复