《数据结构与算法》知识小结

依然~ 2020-05-18 02:18:38
数据结构在研究的其实就是逻辑结构,其中包括线性结构、树结构、图结构。
线性结构:结构中的数据元素之间存在着一对一的线性关系。
树结构:结构中的数据元素之间存在着一对多的层次关系。
图结构:结构中的数据元素之间存在着多对多的任意关系。
算法是对特定问题求解步骤的一种概述,它是指令的有限序列,其中每一条指令表示一个或多个动作。
算法的特性:有穷性、确定性、可行性、输入、输出。
算法设计需要满足的要求:正确性、可读性、健壮性、效率与低储存量需求。
以上是对数据结构和算法一个简单的介绍,下面就是围绕数据结构与算法学习的一些知识。

1线性表:
线性表中讲到了顺序表和单链表,还分别讲了它们的插入和删除。
顺序表的插入特点就是你要插入哪个位置,它就会从最后一个元素开始往后移,直到空出要插入的位置。删除的话就把删除的位置的元素移出,紧接着后面的每一个元素都会往前移一位。单链表插入的特点就是定位在插入位置的前一位然后插入。删除的话就简单了,直接删除那个位置的元素。

2堆栈和队列:
堆栈的特点就很明显了,后进先出。
栈的基本运算有:初始化堆栈、判定栈S是否为空、求堆栈S 的长度、获取栈顶元素的值、将元素e进栈还有出栈。
栈的存储结构:顺序栈、链栈
队列又简称队,其中插入又叫做入队,删除叫做出队。队列的存储结构也是顺序队列和链式队列。
在插入队列的时候如果队列为满就会查询溢出。解决这个问题就是用循环队列。
循环队列为满的条件是:front==( rear+1) % MaxSize

3字符串:
串是由零个或多个字符组成的有限序列,记作s=”s0s1…sn-1”(n≥0),其中s是串名,字符个数n称作串的长度,双撇号括起来的字符序列”s0s1…sn-1”是串的值。每个字符可以是字母、数字或任何其它的符号。零个字符的串(即:””)称为空串,空串不包含任何字符。值得注意的是:
(1)长度为1的空格串" "不等同于空串"";
(2)值为单个字符的字符串不等同于单个字符,如"a"与′a′;
(3)串值不包含双撇号,双撇号是串的定界符。

4数组与矩阵:
数组其实就是有序的元素序列,数组在Java语言中有很多功能:分配存储空间、获得数组长度、存数组元素、取数组元素。数组包括一维数组、二维数组、三维数组、四维数组等等。
如何理解数组呢?一维数组中每一个元素都是一维数组,那二维数组也就是两个元素在一块,三维数组呢,就可以把二维数组比作是一页纸,那三维数组就是一本书。以此类推,四维数组就是放书的书架、五维数组就是图书馆了。
矩阵在数学中是一个按照长方阵列排列的复数或实数的集合。矩阵在生活中一般应用到图像处理、信息加密等等。还有一些特殊的矩阵,零矩阵、方阵、对角矩阵、单位矩阵、上/下三角形矩阵和行/列矩阵。

5树:
树大家看到都知道是很有层次的,树根、树枝、树叶。这就好像一个公司中的总经理、部门经理、员工。树形结构是一种应用十分广泛的非线性结构,客观世界中广泛存在。那么在计算机中如何表示树呢。定义是这样的,树是由n(n≥0)个结点组成的有限集合。如果n=0,那就叫做空树。如果n>0,则满足:
有一个特定的称之为根(root)的结点,它只有直接后继,但没有直接前驱;
除根以为的其他结点划分为m(m>0)个互不相交的有限集合T1,T2,T3……Tm,每个集合又是一棵树,并称为根的子树。(每棵子树的根结点有且仅有一个直接前驱,但它可以有0个或多个直接后继)
下面还有树的一些基本术语:节点、节点的度、树的度、叶子、分支、孩子、双亲、兄弟、有序树和无序树、森林、树的深度。这些基本术语可以让我们学习树的时候更方便快速的理解和记忆。
还有一种特殊的树,符合二孩政策的树—二叉树;二叉树是n(n≥0)个结点组成的有限集合BT,它或者是空集、或者由一个根节点和两颗分别称为左子树和右子树的互不相交的二叉树组成。
二叉树的遍历也有几种方法:先根遍历(TLR)、中根遍历(LTR)、后根遍历(LRT);
二叉树的链式存储结构,最常用的就是二叉链表和三叉链表。还有就是二叉树的创建,如下图所示:

还有一种称为最优二叉树的:哈夫曼树
哈夫曼树的基本概念有路径长度和树的路径长度
结点的带权路径长度:从根结点到某个结点的路径长度与该结点所带的权值的乘积。
树的带权路径长度就是所以叶子结点的带权路径长度之和。通常记作如下图所示:


构造哈夫曼树的方法如下图所示:


6图:
在实际应用中,有很多可以用图结构来描述的问题,比如旅游路线可以用图画出来,而我们学习的这个图就可以帮助我们用最少的资金和时间来规划一个好的旅游方案。
 图是由顶点和边组成的,定点表示图中的数据元素,边表示数据元素之间的关系记为G=(V,E),其中V是顶点的非空有穷集合,E是用顶点对表示的边的有穷集合, 可以为空。
图的基本术语:邻接点、顶点的度、入度和出度、完全图、稠密图、稀疏图、子图、路径、连通图、连通分量、强连通图、强连通分量、权、网。
图的存储结构:邻接矩阵和邻接表。
 图的遍历:从中某一顶点出发遍历图中其余顶点,且使每一顶点仅被访问一次。
算法设计需要注意的几个问题:1、算法的参数要指定访问的第一个顶点;2、要考虑遍历路径可能出现的死循环问题;3、要使每一个顶点的所有邻接顶点按照某种次序被访问。
遍历图的基本方法:深度优先搜索和广度优先搜索。
下面看看连通图的深度优先搜索遍历DFS和一个示例,如下图所示:


解决图的最短路径问题的方法:Dijkstra算法和Floyd算法。
Dijkstra算法:按路径长度的递增次序,逐步产生最短路径的算法。首先求出长度最短的一条最短路径,再参照它求出长度次短的一条最短路径,依此类推,直到顶点V到其它各顶点的最短路径求出为止。下面看一个示例,如下图所示:



7查找:
查找分为静态查找、动态查找和哈希查找,下面我们就一个一个看。
 静态查找又包括:顺序查找、折半查找、分块检索。
顺序查找:查找表的存储结构是线性表;查找过程是依次用查找条件中给定的值与查找表中数据元素的关键字值比较。
下面我们看一下顺序查找的完整算法,如下图所示:

折半查找:折半查找只适用于对有序顺序表进行查找;每进行一次折半查找,要么查找成功,结束查找;要么将查找范围缩小一半,继续查找;如此重复,直到查找成功或查找范围缩小为空即查找失败为止。折半查找又称二分查找。
分块检索:分块检索又称索引顺序查找,它是一种性能介于顺序查找和二分查找之间的查找方法。查找表由 ‘分块有序’ 的线性表和 ‘有序的‘ 索引表组成。

 动态查找:表结构本身是在查找中动态生成,对于给定值K,如果表中存在则查找成功,否则在适当位置插入K。它的结构主要有二叉树结构和树结构两种类型。
二叉排序树又称二叉查找树,它或者是空树,或者是满足以下性质:1、若它左子树非空,则左子树上所有结点的均小于根结点的值;2、若它右子树非空,则右子树上所有结点的均小于根结点的值;3、它的左、右子树本身又各是一棵二叉排序树。
在二叉排序树中查找的基本思想:用给定K值与根节点关键字值比较,如果K小于根节点的值,就继续在左子树中查找,否则将继续在右子树中查找,依此类推,一直查找下去,直到查找成功或者查找失败为止。
下面看一个完整的二叉排序树查找算法,如下图所示:



哈希查找,简单的介绍,如下图所示:

哈希查找中的方法,如下图所示::


8排序:
排序也分为几种:插入排序、交换排序和选择排序。
 插入排序:开始时有序表中只包含一个元素,无序表中包含n-1个元素;排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表;每一趟都是将一个记录插入到前面的有序段中,直到所有记录都插入到有序段中,需要进行n-1趟。
注意:直接插入算法的元素移动是顺序的,该方法是稳定的。
直接插入排序适用于对排序元素较少、且基本有序的数据元素排序。
直接插入排序算法描述如下图所示:

 交换排序:又叫做快速排序,基本思想就是从待排序序列的n个记录中任取一个记录R,作为基准记录,以基准记录为界限,将待排序序列划分成两个子序列,所以关键字小于Ki的记录移动到Ri前面,反之,移动到后面,这个过程称做一趟快速排序,然后用同样的方法对两个子序列排序,得到四个子序列;依次类推,直到每个子序列只有一个
记录为止,此时就得到n个记录的有序序列。
快速排序算法描述和快速排序的递归算法如下图所示:

 选择排序:基本思想就是每一趟从待排序记录中选出关键字最小的记录,按顺序放到已排好序的子序列中,直到全部记录排序完毕。选择排序有两种:直接选择排序和堆排序。

直接选择排序算法描述如下图所示:

在直接选择排序过程中,所需移动记录的次数较少。在最好情况下,即待排序序列正序时,该算法记录移动次数为0,反之待排序序列逆序时,该算法记录移动次数为(n-1)。
在直接选择排序过程中需要的关键字的比较次数与序列原始顺序无关,大概i=1时(外循环执行第一次),内循环比较n-1次,i=2时,内循环比较n-2次;依次类推,算法的总比较次数为(1+2+3+…+n-1) = n(n-1)/2。因此直接选择排序的时间复杂度为O(n²),由于只用一个变量作辅助空间,所以空间复杂度为O(1),直接选择排序是不稳定的。

以上就是数据结构与算法的小总结,大家可以参考或学习。

...全文
94 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。 涵盖广泛 精炼的理论讲述搭配大量经典算法示例,学习查询兼而有之。 阐述到位 算法思想、算法实现和完整示例合理搭配,相辅相成。 示例完善 示例分析精准,代码注释精确,每段代码皆可通过编译执行。 计算机技术的发展和普及不仅改变了人们的生活和娱乐方式,也改变了人们的工作方式,这其中最为重要的便是计算机编程技术。现代的设计任务大多通过代码编程交给计算机来完成,其中算法起到了至关重要的作用。可以毫不夸张地说,算法是一切程序设计的灵魂和基础。 《C/C++常用算法手册》分3篇,共13章,“第1篇算法基础篇”介绍了算法概述,重点分析了数据结构和基本算法思想;“第2篇算法基本应用篇”详细讲解了算法在排序、查找、数值计算、数论、经典趣题和游戏中的应用;“第3篇算法高级应用篇”讲解了算法的一些高级应用技术,包括在密码学和数据压缩/解压缩中的应用。 《C/C++常用算法手册》知识点覆盖全面、结构安排紧凑、讲解详细、示例丰富。《C/C++常用算法手册》对每一个知识点都给出了相应的算法及应用示例。虽然这些例子都是以C语言来编写的,但是算法并不局限于C语言。如果读者采用其他编程语言,例如C++、C#、VB、Java等,根据其语法格式进行适当的修改即可。 《C/C++常用算法手册 》主要定位于有一定C/C++语言编程基础、想通过学习算法与数据结构提升编程水平的读者,也可作为具有一定编程经验的程序员以及大中专院校学生学习数据结构和算法的参考书。 第1篇 算法基础篇 1 第1章 算法概述 2 1.1 什么是算法 2 1.2 算法的发展历史 3 1.3 算法的分类 4 1.4 算法相关概念的区别 4 1.5 算法的表示 5 1.5.1 自然语言表示 5 1.5.2 流程图表示 6 1.5.3 N-S图表示 7 1.5.4 伪代码表示 7 1.6 算法的性能评价 8 1.7 算法实例 9 1.7.1 查找数字 9 1.7.2 创建项目 11 1.7.3 编译执行 12 1.8 算法的新进展 13 1.9 小结 14 第2章 数据结构 15 2.1 数据结构概述 15 2.1.1 什么是数据结构 15 2.1.2 数据结构中的基本概念 16 2.1.3 数据结构的内容 16 2.1.4 数据结构的分类 18 2.1.5 数据结构的几种存储方式 18 2.1.6 数据类型 19 2.1.7 常用的数据结构 20 2.1.8 选择合适的数据结构解决实际问题 21 2.2 线性表 21 2.2.1 什么是线性表 21 2.2.2 线性表的基本运算 22 2.3 顺序表结构 23 2.3.1 准备数据 23 2.3.2 初始化顺序表 24 2.3.3 计算顺序表长度 24 2.3.4 插入结点 24 2.3.5 追加结点 25 2.3.6 删除结点 25 2.3.7 查找结点 25 2.3.8 显示所有结点 26 2.3.9 顺序表操作示例 26 2.4 链表结构 30 2.4.1 什么是链表结构 30 2.4.2 准备数据 31 2.4.3 追加结点 31 2.4.4 插入头结点 33 2.4.5 查找结点 33 2.4.6 插入结点 34 2.4.7 删除结点 35 2.4.8 计算链表长度 36 2.4.9 显示所有结点 36 2.4.10 链表操作示例 37 2.5 栈结构 41 2.5.1 什么是栈结构 41 2.5.2 准备数据 42 2.5.3 初始化栈结构 42 2.5.4 判断空栈 43 2.5.5 判断满栈 43 2.5.6 清空栈 43 2.5.7 释放空间 44 2.5.8 入栈 44 2.5.9 出栈 44 2.5.10 读结点数据 45 2.5.11 栈结构操作示例 45 2.6 队列结构 48 2.6.1 什么是队列结构 48 2.6.2 准备数据 49 2.6.3 初始化队列结构 49 2.6.4 判断空队列 50 2.6.5 判断满队列 50 2.6.6 清空队列 50 2.6.7 释放空间 51 2.6.8 入队列 51 2.6.9 出队列 51 2.6.10 读结点数据 52 2.6.11 计算队列长度 52 2.6.12 队列结构操作示例 53 2.7 树结构 56 2.7.1 什么是树结构 56 2.7.2 树的基本概念 56 2.7.3 二叉树 57 2.7.4 准备数据 61 2.7.5 初始化二叉树 61 2.7.6 添加结点 62 2.7.7 查找结点 63 2.7.8 获取左子树 64 2.7.9 获取右子树 64 2.7.10 判断空树 65 2.7.11 计算二叉树深度 65 2.7.12 清空二叉树 65 2.7.13 显示结点数据 66 2.7.14 遍历二叉树 66 2.7.15 树结构操作示例 68 2.8 图结构 71 2.8.1 什么是图结构 71 2.8.2 图的基本概念 72 2.8.3 准备数据 76 2.8.4 创建图 78 2.8.5 清空图 79 2.8.6 显示图 79 2.8.7 遍历图 80 2.8.8 图结构操作示例 81 2.9 小结 84 第3章 基本算法思想 85 3.1 常用算法思想概述 85 3.2 穷举算法思想 85 3.2.1 穷举算法基本思想 86 3.2.2 穷举算法示例 86 3.3 递推算法思想 88 3.3.1 递推算法基本思想 88 3.3.2 递推算法示例 88 3.4 递归算法思想 90 3.4.1 递归算法基本思想 90 3.4.2 递归算法示例 90 3.5 分治算法思想 92 3.5.1 分治算法基本思想 92 3.5.2 分治算法示例 92 3.6 概率算法思想 96 3.6.1 概率算法基本思想 96 3.6.2 概率算法示例 97 3.7 小结 98 第2篇 算法基本应用篇 99 第4章 排序算法 100 4.1 排序算法概述 100 4.2 冒泡排序法 101 4.2.1 冒泡排序算法 101 4.2.2 冒泡排序算法示例 102 4.3 选择排序法 104 4.3.1 选择排序算法 104 4.3.2 选择排序算法示例 105 4.4 插入排序法 107 4.4.1 插入排序算法 107 4.4.2 插入排序算法示例 108 4.5 Shell排序法 110 4.5.1 Shell排序算法 110 4.5.2 Shell排序算法示例 111 4.6 快速排序法 113 4.6.1 快速排序算法 113 4.6.2 快速排序算法示例 114 4.7 堆排序法 116 4.7.1 堆排序算法 116 4.7.2 堆排序算法示例 121 4.8 合并排序法 123 4.8.1 合并排序算法 123 4.8.2 合并排序算法示例 126 4.9 排序算法的效率 129 4.10 排序算法的其他应用 130 4.10.1 反序排序 130 4.10.2 字符串数组的排序 132 4.10.3 字符串的排序 135 4.11 小结 137 第5章 查找算法 138 5.1 查找算法概述 138 5.2 顺序查找 138 5.2.1 顺序查找算法 139 5.2.2 顺序查找操作示例 139 5.3 折半查找 141 5.3.1 折半查找算法 141 5.3.2 折半查找操作示例 142 5.4 数据结构中的查找算法 145 5.4.1 顺序表结构中的查找算法 145 5.4.2 链表结构中的查找算法 148 5.4.3 树结构中的查找算法 151 5.4.4 图结构中的查找算法 152 5.5 小结 153 第6章 基本数学问题 154 6.1 判断闰年 154 6.2 多项式计算 156 6.2.1 —维多项式求值 156 6.2.2 二维多项式求值 158 6.2.3 多项式乘法 160 6.2.4 多项式除法 161 6.3 随机数生成算法 164 6.4 复数运算 171 6.4.1 简单的复数运算 172 6.4.2 复数的幂运算 174 6.4.3 复指数运算 176 6.4.4 复对数运算 177 6.4.5 复正弦运算 178 6.4.6 复余弦运算 179 6.5 阶乘 180 6.6 计算π的近似值 183 6.6.1 割圆术 183 6.6.2 蒙特卡罗算法 185 6.6.3 级数公式 187 6.7 矩阵运算 190 6.7.1 矩阵加法 190 6.7.2 矩阵减法 191 6.7.3 矩阵乘法 193 6.8 方程求解 195 6.8.1 线性方程求解——高斯消元法 195 6.8.2 非线性方程求解——二分法 200 6.8.3 非线性方程求解——牛顿迭代法 202 6.9 小结 205 第7章 复杂的数值计算算法 206 7.1 拉格朗日插值 206 7.1.1 拉格朗日插值算法 206 7.1.2 拉格朗日插值示例 207 7.2 数值积分 210 7.2.1 数值积分算法 210 7.2.2 数值积分示例 211 7.3 开平方 213 7.3.1 开平方算法 213 7.3.2 开平方示例 213 7.4 极值问题的求解算法 215 7.4.1 极值求解算法 215 7.4.2 极值求解示例 217 7.5 特殊函数的计算算法 221 7.5.1 伽玛函数 221 7.5.2 贝塔函数 224 7.5.3 正弦积分函数 228 7.5.4 余弦积分函数 231 7.5.5 指数积分函数 235 7.6 小结 239 第8章 经典数据结构问題 240 8.1 动态数组排序 240 8.1.1 动态数组的存储和排序 240 8.1.2 动态数组排序示例 241 8.2 约瑟夫环 243 8.2.1 简单约瑟夫环算法 243 8.2.2 简单约瑟夫环求解 245 8.2.3 复杂约瑟夫环算法 247 8.2.4 复杂约瑟夫环求解 248 8.3 城市之间的最短总距离 250 8.3.1 最短总距离算法 250 8.3.2 最短总距离求解 253 8.4 最短路径 257 8.4.1 最短路径算法 258 8.4.2 最短路径求解 260 8.5 括号匹配 265 8.5.1 括号匹配算法 265 8.5.2 括号匹配求解 267 8.6 小结 270 第9章 数论问题 271 9.1 数论 271 9.1.1 数论概述 271 9.1.2 数论的分类 272 9.1.3 初等数论 273 9.1.4 基本概念 273 9.2 完全数 274 9.2.1 完全数概述 274 9.2.2 计算完全数算法 275 9.3 亲密数 277 9.3.1 亲密数概述 277 9.3.2 计算亲密数算法 277 9.4 水仙花数 280 9.4.1 水仙花数概述 280 9.4.2 计算水仙花数算法 281 9.5 自守数 283 9.5.1 自守数概述 283 9.5.2 计算自守数算法 284 9.6 最大公约数 287 9.6.1 计算最大公约数算法——搌转相除法 287 9.6.2 计算最大公约数算法一一Stein算法 288 9.6.3 计算最大公约数示例 289 9.7 最小公倍数 290 9.8 素数 292 9.8.1 素数概述 292 9.8.2 计算素数算法 292 9.9 回文素数 294 9.9.1 回文素数概述 294 9.9.2 计算回文素数算法 294 9.10 平方回文数 297 9.10.1 平方回文数概述 297 9.10.2 计算平方回文数算法 297 9.11 分解质因数 299 9.12 小结 301 第10 章算法经典趣题 302 0. .l 百钱买百鸡 302 10.1.1 百钱买百鸡算法 302 10.1.2 百钱买百鸡求解 303 10.2 五家共井 304 10.2.1 五家共井算法 304 10.2.2 五家共井求解 305 10.3 鸡兔同笼 307 10.3.1 鸡兔同笼算法 307 10.3.2 鸡兔同笼求解 308 10.4 猴子吃桃 308 10.4.1 猴子吃桃算法 308 10.4.2 猴子吃桃求解 309 10.5 舍罕王赏麦 310 10.5.1 舍罕王赏麦问题 310 10.5.2 舍罕王赏麦求解 311 10.6 汉诺塔 312 10.6.1 汉诺塔算法 312 10.6.2 汉诺塔求解 314 10.7 窃贼问题 315 10.7.1 窃贼问题算法 315 10.7.2 窃贼问题求解 317 10.8 马踏棋盘 320 10.8.1 马踏棋盘算法 320 10.8.2 马踏棋盘求解 321 10.9 八皇后问题 323 10.9.1 八皇后问题算法 324 10.9.2 八皇后问题求解 325 10.10 寻找假银币 327 10.10.1 寻找假银币算法 327 10.10.2 寻找假银币求解 329 10.11 青蛙过河 331 10.11.1 青蛙过河算法 331 10.11.2 青蛙过河求解 333 10.12 三色旗 335 10.12.1 三色旗算法 335 10.12.2 三色旗求解 337 10.13 渔夫捕鱼 339 10.13.1 渔夫捕鱼算法 339 10.13.2 渔夫捕魚求解 340 10.14 爱因斯坦的阶梯 341 10.14.1 爱因斯坦的阶梯算法 341 10.14.2 爱因斯坦的阶梯求解 342 10.15 兔子产仔 342 10.15.1 兔子产仔算法 343 10.15.2 兔子产仔求解 343 10.16 常胜将军 344 10.16.1 常胜将军算法 344 10.16.2 常胜将军求解 345 10.17 新郎和新娘 346 10.17.1 新郎和新娘算法 347 10.17.2 新郎和新娘求解 348 10.18 三色球 349 10.18.1 三色球算法 349 10.18.2 三色球求解 350 10.19 小结 351 第11章 游戏中的算法 352 11.1 洗扑克牌 352 11.1.1 洗扑克牌算法 352 11.1.2 洗扑克牌示例 353 11.2 取火柴游戏 356 11.2.1 取火柴游戏算法 356 11.2.2 取火柴游戏示例 357 11.3 10点半 358 11.3.1 10点半算法 358 11.3.2 10点半游戏示例 363 11.4 生命游戏 368 11.4.1 生命游戏的原理 368 11.4.2 生命游戏的算法 369 11.4.3 生命游戏示例 371 11.5 小结 376 第3篇 算法高级应用篇 377 第12章 密码学算法 378 12.1 密码学概述 378 12.1.1 密码学的发展 378 12.1.2 密码学的基本概念 379 12.1.3 柯克霍夫斯原则 379 12.1.4 经典密码学算法 380 12.2 换位加密解密 381 12.2.1 换位加密解密算法 381 12.2.2 换位加密解密算法示例 383 12.3 替换加密解密 386 12.3.1 替换加密解密算法 386 12.3.2 替换加密解密算法示例 388 12.4 位加密解密 389 12.4.1 位加密解密算法 390 12.4.2 位加密解密算法示例 391 12.5 一次一密加密解密算法 392 12.5.1 一次一密加密解密算法 392 12.5.2 一次一密加密解密算法示例 394 12.6 小结 396 第13章 压缩与解压缩算法 397 13.1 压缩与解压缩概述 397 13.1.1 压缩与解压缩分类 397 13.1.2 典型的压缩解压缩算法 397 13.2 压缩算法 398 13.3 解压缩算法 401 13.4 压缩/解压缩示例 404 13.5 小结 406

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧