数据结构与算法基础-软考

内容总结

在这里插入图片描述

1.数组

在这里插入图片描述
例题;
在这里插入图片描述

一维数组 存储地址计算=起始位置(a)+数组下标(i)*元素所占字节数(len)
二维数组 例题按行存储 a[2][3]=a+(2 * 5+3)*2=a+26

2.稀疏矩阵

大量元素为0的矩阵称为稀疏矩阵

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

上述例题一般采用代入法,根据A[0,0]在M[1]的位置(数组M下标从1开始),代入排除BC选项
A[1,0]在M[2]的位置,代入A选项为2,选项正确

3.数据结构的定义

数据结构是计算机存储以及组织数据的方式
数据结构按照逻辑关系分为线形和非线性
线性结构:线性表(单链表、顺序表)、栈、队列数组
非线性结构:树结构和图结构

在这里插入图片描述

4.线性表

线性表是最基本,最简单,最常用的数据结构,一个线性表是N个具有相同特性的数据元素的有限序列

4.1顺序表和链表

在这里插入图片描述

顺序表:基于数组实现的,因为内存地址是连续的。 类名是SequenceList
在这里插入图片描述

链表:

在这里插入图片描述

双向链表:前一个节点地址+后一个节点地址
在这里插入图片描述

循环列表
在这里插入图片描述

4.2顺序存储与链式存储对比

在这里插入图片描述

4.3队列与栈

在这里插入图片描述

①元素a进栈,元素a出栈,元素b进栈,元素b出栈,元素c进栈,元素c出栈,此时得到出栈序列为:abc。
②元素a进栈,元素a出栈,元素b进栈,元素c进栈,元素c出栈,元素b出栈,此时得到出栈序列为:acb。
③元素a进栈,元素b进栈,元素b出栈,元素a出栈,元素c进栈,元素c出栈,此时得到出栈序列为:bac。
④元素a进栈,元素b进栈,元素b出栈,元素c进栈,元素c出栈,元素a出栈,此时得到出栈序列为:bca。
⑤元素a进栈,元素b进栈,元素c进栈,元素c出栈,元素b出栈,元素a出栈,此时得到出栈序列为:cba。
在这里插入图片描述
选项D错误
B选项,e1,e2从左端进,e3右端进,e4左端进,得到e4,e2,e1,e3输出序列

4.4广义表

在这里插入图片描述

a是一个元素,(b,c)是一个元素,(d,e)是以个元素,长度为3。深度看层数,LS1两层(其中(b,c)和(d,e))算一层。所以深度为2
先取Tail,得到((b,c),(d,e));再取head,得到(b,c);再取head即可得到字母b。即操作序列为:Head(Head(Tail(LS1)))

5.树与二叉树

5.1基本概念

在这里插入图片描述

结点的度:当前结点的孩子结点的个数。比如结点2有两个孩子结点4和5,所以结点2的度为2;而结点4和5没有孩子节点,所以度为0;结点3只有一个孩子节点6,所以度为1。
树的度:树中所有结点的度最大的那个。比如上面这棵树中,结点的度最大为2,所以该树的度为2。
叶子结点:没有孩子节点
分支节点:有相应的分支
内部节点:非叶子节点也非根节点。
父结点、子结点、兄弟结 点:1是2和3的父结点,4和5是2的子结点,4和5、2和3称为兄弟结点。
层次:根结点为第一层,之后层数依次加1

5.2二叉树

在这里插入图片描述

5.3二叉树遍历

在这里插入图片描述

前序遍历(根左右):12457836
中序遍历(左根右):42785136
后序遍历(左右根):48752631
层次遍历:12345678

5.4反序构造二叉树

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

5.5树转二叉树

在这里插入图片描述

树转二叉树规则:孩子结点变左子树结点,兄弟结点变成右孩子结点

5.6查找二叉树

在这里插入图片描述

5.6最优二叉树(哈夫曼树)

在这里插入图片描述

5.7线索二叉树

在这里插入图片描述

前序线索二叉树按照前序序列生成的

5.8平衡二叉树

在这里插入图片描述

左边这棵二叉树,结点1和9为叶子节点,无左子树和右子树,所以平衡度为0;结点5的左子树深度为1、右子树深度为0,所以平衡度为1-0=1;结点7的左右子树深度均为2,所以平衡度为2-2=0;这几个结点都满足平衡二叉树的平衡因子只能为±1或0的条件。结点39、73、88的平衡度依次为3、4、5,不满足平衡度只能为±1或0的条件,所以这不是一棵平衡二叉树。

6.图

6.1基本概念

在这里插入图片描述
图的存储:

邻接矩阵具有对称性

在这里插入图片描述

邻接表

在这里插入图片描述

6.2图-拓扑排序

在这里插入图片描述

6.3图的最小生成树-普利姆算法

在这里插入图片描述

6.4图的最小生成树-克鲁斯卡尔算法

从最短的边选起
在这里插入图片描述

7.算法

7.1算法的特型

在这里插入图片描述

7.2查找

7.2.1顺序查找

时间复杂度O(n)

在这里插入图片描述

7.2.2二分查找

时间复杂度在这里插入图片描述

在这里插入图片描述

7.2.3散列表

在这里插入图片描述

7.3排序

7.3.1直接插入排序

在这里插入图片描述

7.3.2希尔排序

在这里插入图片描述

7.3.3直接选择排序

选出最小的元素

在这里插入图片描述

7.3.4堆排序

孩子结点大于父节点 小顶堆。反之大顶堆

在这里插入图片描述

首先从非叶子结点开始(叶子结点是没有孩子结点)
在这里插入图片描述

在这里插入图片描述

7.3.5冒泡排序

在这里插入图片描述

7.3.6快速排序

在这里插入图片描述

7.3.7归并排序

在这里插入图片描述

7.3.8基数排序

在这里插入图片描述

7.3.9排序算法比较

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值