【软件设计师】数据结构与算法

数组

在这里插入图片描述
a+(2*5+3)*2
a+(14-1)*2(没有用公式的方法)

稀疏矩阵

线性表

在这里插入图片描述
在这里插入图片描述

顺序存储与链式存储对比

顺序存储结构
优点1:存储密度大,空间利用度高,比链式存储节约空间
优点2:存储操作上方便操作,顺序支持随机存取,查找和读取会比较容易
缺点1:插入或者删除元素时不方便,花费的时间更多
链式存储结构
优点1:插入或删除时方便些,空间使用灵活
缺点1:存储密度小,空间利用度低
缺点2:查找会相较顺序存储方式复杂一些,花费的时间会更多

队列与栈

循环队列:
在这里插入图片描述
栈的存取顺序注意

广义表

例如:广义表LS1=(a,((b,c),d),(e,f))
长度:3 深度:3
长度是最外层元素个数,深度是定义中所含括号的重数(原子的深度为0,空表的深度为1)

树与二叉树

结点的度:结点的孩子数量
树的度:所有结点中,度数最高的,即为树的度
叶子结点:没有孩子的就是叶子结点
孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点
内部结点:既不是根结点,也不是叶子结点
兄弟结点:同一个父结点的子结点之间互为兄弟结点
层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推
树的高度或深度:树中节点的最大层次

满二叉树与完全二叉树

完全与非完全的区别:
完全:每一层从左至右依次排满,中间不准留空
非完全:反之
在这里插入图片描述

二叉树的遍历

前序遍历
中序遍历
后序遍历
层次遍历

反向构造二叉树

树转二叉树

在这里插入图片描述

查找二叉树(排序二叉树)

在这里插入图片描述

最优二叉树(哈夫曼树)

此图有错,权值应该左小右大
在这里插入图片描述
带权路径长度:树的路径长度*权
树的带权路径长度:所有带权路径长度加起来
例:
在这里插入图片描述
在这里插入图片描述

线索二叉树

在这里插入图片描述

平衡二叉树

因为查找(排序)二叉树有时候同样顺序的数值会构造出不同的树,有些很不平衡,会影响树的查找等效率,所以有了平衡二叉树
在这里插入图片描述

邻接矩阵

在这里插入图片描述

邻接表

在这里插入图片描述

图的遍历

在这里插入图片描述

拓扑排序

在这里插入图片描述

图的最小生成树

注意不要连成环了
在这里插入图片描述

算法

查找

顺序查找

时间复杂度:O(n)

二分查找(折半查找)

数组必须是有序数组才能用
时间复杂度:
在这里插入图片描述
例:要查找关键字17
在这里插入图片描述
注意:(1+12)/2=6.5结果是小数,这时候要看清题目有没有说明向上取整还是向下取整,如果没有说明,一般是向下取整
假设向下取整得到6,接下来因为6已经比较过了,所以是(1+5)/2而不是(1+6)/2

散列表

自定义函数或者其他规则进行存储

排序

·直接插入排序
·希尔排序
·直接选择排序
·堆排序
·冒泡排序
·快速排序
·归并排序
·基数排序
·排序算法的时间复杂度和空间复杂度
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值