数据结构
文章平均质量分 77
之墨_
这个作者很懒,什么都没留下…
展开
-
算法基础模板 快排、快选、归并、二分、离散化、区间合并、链表、图搜索、最短路等
算法基础 快排、快选、归并、二分、离散化、区间合并、链表、图搜索、最短路等模板原创 2023-07-09 18:51:52 · 852 阅读 · 0 评论 -
染色法判定二分图 — DFS深搜 +BFS宽搜
如果给定图是二分图,则输出 Yes,否则输出 No。条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。行,每行包含两个整数。原创 2023-07-08 16:55:37 · 407 阅读 · 0 评论 -
Dijkstra求最短路 — 朴素/堆优化 + 模拟邻接表 及 遍历
给定一个 n个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出 1号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。原创 2023-07-07 22:17:04 · 296 阅读 · 0 评论 -
树的重心 — 模拟单链表实现树的存储+DFS搜索
给定一颗树,树中包含 n 个结点(编号 1∼n)和 n−1 条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。原创 2023-07-06 21:51:06 · 259 阅读 · 0 评论 -
【数据库】— 安全性、完整性、自主/强制存取控制、审计
自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。审计功能是指DBMS 的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。原创 2023-06-24 13:56:24 · 816 阅读 · 0 评论 -
数据结构—二叉树、完全二叉树的性质
# 1若一棵度为4的树中度为1、2、3、4的结点个数分别为4、3、2、2,则该树的总结点个数是多少?正确答案:答案:结点总数n=n0+n1+n2+n3+n4,又由于除根结点外,每个结点都对应一个分支,所以总的分支数等于n-1。而度为i(0≤i≤4)的结点的分支数为i,所以有:总分支数=n-1=0×n0+1×n1+2×n2+3×n3+4×n4。综合两式得:n0=n2+2n3+3n4+1=3+2×2+3×2=14,则n=n0+n1+n2+n3+n4=14+4+3+2+2=25,所以该树的总结点个数是25原创 2023-02-09 21:28:40 · 979 阅读 · 0 评论 -
算法导论【多源最短路径】—Floyd算法
Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。Floyd算法用于多源最短路径的求解,算出来的是所有的节点到其余各节点之间的最短距离。与迪杰斯特拉算法区别:迪杰斯特拉算法通过选定的被访问顶点,求出从出发访问顶点到其他顶点的最短路径; 弗洛伊德算法中每一个顶点都是出发访问点,所以需要将每一个顶点看做被访问顶点,求出从每一个顶点到其他顶点的原创 2022-12-01 15:06:28 · 624 阅读 · 0 评论 -
数据结构习题—链表
1下面关于线性表的叙述中,错误的是哪一个?( )A)线性表采用顺序存储,必须占用一片连续的存储单元。B)线性表采用链接存储,便于插入和删除操作。C)线性表采用链接存储,不必占用一片连续的存储单元。D线性表采用顺序存储,便于进行插入和删除操作。2已知栈的最大容量为4。若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( )。A) 5,4,3,2,1,6 B) 2,3,5,6,1,4C) 3,2,5,4,1,6原创 2022-11-29 13:47:56 · 815 阅读 · 1 评论 -
算法导论习题—摊还时间代价分析、栈实现队列、贪心算法近似比、集合覆盖问题
每次有元素入左栈时,判断辅助栈为空或辅助栈的栈顶元素比入栈元素更大,则将该元素压入辅助栈中,否则将辅助栈的栈顶元素重复压入辅助栈。左栈需要弹出元素时,辅助栈需要同步弹出栈顶元素。取最小值时,直接将栈顶元素弹出,返回值即最小值。 当我们选择一个集合之后,删除已经被覆盖的元素。每次迭代添加包含未覆盖元素最多的集合, 直到满足全覆盖条件,时间复杂度为多项式时间。: 使用聚合法分析,取最小值实际上是对单个辅助栈的操作,考虑整个栈的。个操作,一个对象压入栈后,至多弹出一次,则对该栈的。是其覆盖的对应元素个数。原创 2022-11-24 15:59:49 · 415 阅读 · 0 评论 -
算法基础习题—内存分配(区间树实现)
如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。现在小明决定实现一个类似malloc的内存分配系统,具体来说,他需要连续处理若干申请内存的请求,这个请求用一个闭区间$[a_i..b_i]$来表示。当这个区间和当前已被申请的内存产生重叠时,则返回内存分配失败的信息。假设初始状态下内存均未被占用,管理的内存地址范围为$0-1GB(0-2^{30})$。对于每行内存分配的申请,若申请成功则输出一行0,若申请失败则输出一行-1。行数据,每行的格式为。原创 2022-11-04 21:19:04 · 327 阅读 · 0 评论 -
算法基础实验OJ—树的遍历
给定某二叉树的前序序列和中序序列,输出该二叉树的后序序列。(输入的前序遍历和中序遍历的结果中都不含重复的数字)第一行是n接下来一行有n个数表示前序序列最后一行是中序序列对于30%的数据,n原创 2022-11-03 13:58:36 · 226 阅读 · 0 评论 -
算法导论OJ习题— 数据库查询(红黑树实现AVL树实现)
勤奋的小明为了预习下学期的数据库课程,决定亲自实现一个简单的数据库系统。该数据库系统需要处理用户的数据库插入和查询语句,并输出相应的输出。具体来说,用户的输入共包含若干条插入语句和查询语句。其中每条插入语句包含一个主键(唯一标识)idid和一个字符串sid表示在数据库中插入一个主键为id,属性值为sid的条目。每条查询语句包含一个字符串k,表示在数据库总查询是否有条目属性值为k,若存在属性值为k的条目,则输出该条目对应的主键(输入保证至多有一个条目满足要求),否则输出一个-1表示不存在这样的条目。原创 2022-11-03 13:31:25 · 375 阅读 · 0 评论 -
算法导论习题—第六章堆排序(一)
再逆着推:对于没有子元素的数组元素,意味者2i,2i+1是大于数组的长度n的,所以对于没有子元素的叶节点来说他们的索引范围为。答:反证法:如果最大元素不在该子树的根节点上,那么这个最大元素的父亲节点一定小于这个最大元素,违背了最大堆的属性和定义。这颗树的高度定义为从根元素出发到叶节点最长简单路径上边的数目。答:是的,数组索引从左往右依次变大,意味着该堆的子元素都比父元素大,是最小堆。答:不是,位于第九位的7比位于第四位的6来的大。的数组元素他们的子节点必然是。个元素的堆的高度为向下取整。原创 2022-10-24 21:15:01 · 633 阅读 · 0 评论 -
算法导论习题—堆排序、快速排序
证:对于递归树中的叶结点深度,最小的深度由划分比例中较小的分支决定,对于。,在构造大顶堆时的速度更快,但仍然是线性时间内,即时间复杂度。比例的数会产生比$ 1 - \alpha: \alpha。P\small{ARTITION}$产生比。的时间复杂度与升序排列时相同,所以。 证:要产生比。为降序时的时间复杂度也为。,则当到达叶结点时,深度。 对一个按升序排列的。,则对应最大深度就是取。时,同理可此时深度满足。更平衡的划分的概率为。原创 2022-10-24 20:14:40 · 476 阅读 · 0 评论 -
高级数据结构—斐波那契堆与二项堆详细介绍
斐波那契堆历史:Fredman和Tarjan(1986)巧妙的数据结构和分析O(m+nlogn)O(m+nlogn)最短路径算法,也导致了更快的MST算法,加权二分匹配仍然领先于它的时代斐波那契堆直觉:类似于二项式堆,但结构不太复杂减少键和联合运行时间O(1)O(1)O(1)(均摊时间复杂度)“懒惰”联合斐波那契堆是以斐波那契堆数命名的,用于运行时间分析。原创 2022-10-24 19:40:41 · 1611 阅读 · 0 评论 -
高级数据结构—二项堆与斐波那契堆详细介绍(算法导论中科大USTC)
二项树是一种递归定义的有序树。二项树B0B_0B0只有一个结点二项树BkB_kBk由两棵二项树B(k−1)B_{(k-1)}B(k−1)组成的,其中一棵树是另一棵树根的最左孩子每棵二项树都满足最小堆性质。即,父节点的关键字原创 2022-10-24 19:15:19 · 582 阅读 · 0 评论 -
数据结构—二叉树删除结点、遍历二叉树排序树和二叉搜索树
相同集合上的两棵二叉搜索树,若存在相同元素,则前序、后序或中序中的一种遍历相同,可能无法判断两棵二叉树搜索树相同。“根据一棵树的先序遍历和中序遍历,或者后序遍历和中序遍历序列,都可以唯一地确定一棵树。根据一棵树的先序遍历和中序遍历,或者后序遍历和中序遍历序列,都可以唯一地确定一棵树。对于这两棵二叉搜索树,他们的前序后序中序遍历都是3、3,所以无法区分!空树或为任一结点至多只有左子结点的二叉树。空树或为任一结点至多只有右子结点的二叉树。空树或为任一结点至多只有右子结点的二叉树。中序序列与层次遍历序列相同。原创 2022-10-20 22:00:30 · 503 阅读 · 0 评论 -
算法导论习题—二叉搜索树、红黑树、区间树
假设取得一个不在区间端点上的最大重叠点,对于这个点,其所在的区间的左端点或右端点中,必定存在一个端点与这个最大重叠点有着相同的区间数,所以,在最大重叠点中,一定存在一个点是其中一个区间的端点。之前出现的区间,只出现了左端点,还没有出现右端点,那么说明该区间与。使用红黑树存储各个区间的端点值,对于每个结点。值,其余操作与红黑树的插入操作相同。值,其余操作与红黑树的删除操作相同。为根节点的树中最大重叠点的重叠数。为根结点的子树中的最小端点值为。的右孩子结点,则此时结点。,若结点为一个左端点,则。原创 2022-10-20 20:04:12 · 610 阅读 · 0 评论 -
非线性整数规划的遗传算法Matlab程序
通常,非线性整数规划是一个具有指数复杂度的NP问题,如果约束较为复杂,Matlab优化工具箱和一些优化软件比如lingo等,常常无法应用,即使能应用也不能给出一个较为令人满意的解。这时就需要针对问题设计专门的优化算法。下面举一个遗传算法应用于非线性整数规划的编程实例,供大家参考!原创 2022-08-22 15:53:58 · 1858 阅读 · 0 评论 -
数据结构—图/无向图/连通图/连通分量/邻接矩阵/表/广度深度遍历
1在下图所示的各无向图中:(1)找出所有的简单环。 (2)哪些图是连通图?对非连通图给出其连通分量。正确答案:(1)所有的简单环:(同一个环可以任一顶点作为起点) (a)1231 (b)无 ©1231、2342、12341 (d)无(2)连通图: (a)、©、(d)是连通图, (b)不是连通图,因为从1到2没有路径。具体连通分量为: 2(1) 该图是强连通的吗? 若不是,则给出其强连通分量。(2) 请给出所有的简单路径及有向环。(3) 请给原创 2022-01-09 16:36:39 · 5717 阅读 · 3 评论 -
数据结构习题-树/完全二叉树/树的度/m次树
1若一棵度为4的树中度为1、2、3、4的结点个数分别为4、3、2、2,则该树的总结点个数是多少?正确答案:答案:结点总数n=n0+n1+n2+n3+n4,又由于除根结点外,每个结点都对应一个分支,所以总的分支数等于n-1。而度为i(0≤i≤4)的结点的分支数为i,所以有:总分支数=n-1=0×n0+1×n1+2×n2+3×n3+4×n4。综合两式得:n0=n2+2n3+3n4+1=3+2×2+3×2=14,则n=n0+n1+n2+n3+n4=14+4+3+2+2=25,所以该树的总结点个数是25。原创 2022-01-09 15:43:24 · 4843 阅读 · 0 评论 -
数据结构与算法—并查集、Kruskal算法求最小生成树
数据结构—Kruskal算法求最小生成树并查集find函数 寻找最高上级find函数 路径压缩 寻找最高上级union函数 合并两无关边Kruskal算法求最小生成树题目一主要测试代码完整代码题目二题目三并查集并查集 (英文:Disjoint-set data structure,直译为不交集数据结构)是一种 数据结构 ,用于处理一些 不交集 (Disjoint sets,一系列没有重复元素的集合)的合并及查询问题一篇关于并查集很好的文章在kruskal算法中,我们要用到并查集来判断新加入的边是否原创 2021-12-22 22:01:54 · 402 阅读 · 0 评论 -
数据结构与算法—查找(树表的查找)
查找-树表的查找二叉排序树对于创建二叉树算法的说明:完整代码实现二叉排序树二叉排序树(binary search tree,BST)又称二叉搜索树其定义为二叉排序树或者是空树或者是满足以下性质的二叉树(1)若根结点的左子树非空,则左子树上的所有结点关键字均小于根结点关键字;(2)若根结点的右子树非空,则右子树上的所有结点关键字均大于根结点关键字;(3)根结点的左、右子树本身又各是一棵二叉排序树;上述性质简称二叉排序树性质(BST 性质)故二叉排序树实际上是满足 BST 性质的二叉树也就原创 2021-12-19 21:09:15 · 393 阅读 · 0 评论 -
数据结构—深度优先遍历、广度优先遍历、图遍历算法的应用
数据结构—深度优先遍历、广度优先遍历深度优先遍历代码实现广度优先遍历代码实现遍历算法的应用代码实现深度优先遍历深度优先遍历的过程是从图中的某个初始点v出发,首先访问初始点v然后选择一个与顶点v相邻且没被访问过的顶点w以w为初始顶点,再从它出发进行深度优先遍历直到图中与顶点v邻接的所有顶点都被访问过为止显然这个遍历过程是一个递归过程以邻接表为存储结构的深度优先遍历算法如下(其中v是初始点,visited 是一个全局数组,初始时所有元素均为0,表示所有顶点尚未被访问过)代码实现int vis原创 2021-12-13 16:53:22 · 1300 阅读 · 0 评论 -
数据结构—图、邻接表存储、基本运算算法、图的遍历
数据结构—图原创 2021-12-06 00:40:18 · 1390 阅读 · 2 评论 -
数据结构—图、图的定义、图的存储结构
数据结构—图图的定义ADT Graph有向图与无向图有向图无向图图的基本术语端点和邻接点顶点的度、入度和出度完全图稠密图和稀疏图子图路径和路径长度连通、连通图、连通分量、可达强连通图和强连通分量权和网图的存储结构邻接矩阵存储方法图的定义无论多么复杂的图都是由顶点和边构成的采用形式化的定义图(graph)G 由两个集合 **V(vertex)**和 E(edge)组成记为 G=(V,E)其中V 是顶点的有限集合,记为 V(G) E是连接 V 中两个不同顶点(顶点对)的边的有限集合,记为 E(G)原创 2021-11-28 15:28:42 · 655 阅读 · 0 评论 -
树(二叉树)的性质
树(二叉树)的性质一棵结点个数为n、高度为h的m(m≥3)次树中,其分支数是( )A.nhB.n+hC.n-1D.h-1由于二叉树中除了根结点以外,每个结点都有唯一的一个分支指向它,因此二叉树中:总分支数=总结点数-1若一棵度为7的树有7个度为2的结点,有6个度为3的结点,有5个度为4的结点,有4个度为5的结点,有3个度为6的结点,有2个度为7的结点,该树一共有( )个叶子结点A.35B.28C.77D.78根据二叉树的性质,叶子结点数 = 总度数+1 - 非叶子结点总数,即原创 2021-11-22 23:56:01 · 7437 阅读 · 4 评论 -
数据结构与算法—印章问题
动态规划—印章问题讲解传送门感谢大佬资源限制时间限制:1.0s 内存限制:256.0MB问题描述共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。输入格式一行两个正整数n和m输出格式一个实数P表示答案,保留4位小数。样例输入2 3样例输出0.7500数据规模和约定1≤n,m≤20用动态规划的思想(也有直接用公式,没找到)#include <iostream>#include <cmath>using n原创 2021-11-18 00:25:27 · 1480 阅读 · 0 评论 -
数据结构与算法—01背包问题
0-1背包问题有人夜里看海,有人AcWing第二题都做不出来QAQ有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值输出格式输出一个整数,表示最大价值数据范围0<N,V≤10000<原创 2021-11-17 20:57:50 · 234 阅读 · 0 评论 -
数据结构—堆与堆排序
数据结构—堆与堆排序堆堆的性质堆排序堆堆就是一种数据结构,就是树的一个特殊例子——完全二叉树对于完全二叉树,简单理解就是一颗二叉树只有倒数第二层可以允许子节点不全满,但只能是左子树。堆的性质大顶堆:每个节点的值都大于或者等于它的左右子节点的值小顶堆:每个节点的值都小于或者等于它的左右子节点的值而在实际使用中,我们一般用数组进行实现:存储结构如下:95823471354289对于大顶堆与小顶堆的数组有以下两个性质大顶原创 2021-11-17 13:05:37 · 471 阅读 · 0 评论 -
数据结构—串、KMP模式匹配算法
数据结构—串串顺序串代码实现串的模式匹配BF 算法代码实现KMP算法代码实现求next数组的代码KMP算法代码改进代码求nextVal修正的KMP算法串串(string)是由零个或多个字符组成的有限序列。含零个字符的串称为空串,用Ø表示。串中所含字符的个数称为该串的长度(或串长)。通常将一个串表示成"a1a2a3a4…“的形式,其中最外边的双引号(或单引号)不是串的内容,它们是串的标志,用于将串与标识符(如变量名等)加以区别。每个 a(1≤i≤n)代表一个字符,不同的机器和编程语言对合法字符(即允许使用原创 2021-11-14 11:34:54 · 656 阅读 · 0 评论 -
数据结构—树
树、查找算法树的定义树的性质树的存储结构双亲存储结构孩子链存储结构孩子兄弟链存储结构二叉树的定义满二叉树完全二叉树二叉树的性质二叉树的存储结构顺序存储链式存储创建二叉树查找二分查找代码实现树的定义树(tree)是由 n(n≥0)个结点(或元素)组成的有限集合(记为 T)。如果x=0,它是一棵空树,这是树的特例如果n>0,这n个结点中有且仅有一个结点作为树的根结点,简称为根(root),其余结点可分为 m(m≥0)个互不相交的有限集 Ti,Tz,…,T,,其中每个子集本身又是一棵符合本定义的树,原创 2021-11-07 14:20:08 · 456 阅读 · 0 评论 -
Java数据结构—排序算法
排序算法选择排序选择排序代码实现插入排序选择排序代码算法希尔排序法希尔排序代码实现快速排序快速排序代码实现代码归并排序归并排序代码实现选择排序基本介绍选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。选择排序思想选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换,第二次从ar[1]-ar[n-1]中选取最小值, 与ar[1]交换,第三次从r原创 2021-10-25 18:11:02 · 308 阅读 · 0 评论 -
Java数据结构—时间复杂度
Java数据结构—排序算法常见的时间复杂度平均时间复杂度和最坏时间复杂度常见的时间复杂度常数阶O(1)对数阶O(log2n)线性阶O(n)线性对数阶O(nlog2n)平方阶O(n^2)立方阶O(n^3)k次方阶O(n^k)指数阶O(2^n)常见的算法时间复杂度由小到大依次为:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)< Ο(nk)<Ο(2n) ,随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低平均时间复杂度和最坏原创 2021-10-05 11:34:55 · 371 阅读 · 0 评论 -
Java数据结构—递归
Java数据结构—递归概念递归用途递归规则迷宫问题代码实现八皇后问题(回溯算法)代码实现概念递归就是方法自己调用自己,每次调用时传入不同的变量递归有助于编程者解决复杂的问题,同时可以让代码变得简洁递归调用规则当程序执行到一个方法时,就会开辟一个独立的空间(栈)每个空间的数据(局部变量),是独立的递归用途递归用于解决什么样的问题各种数学问题如:8皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题(google编程大赛)各种算法中也会使用到递归,比如快排,归并排序,二分查找,分治原创 2021-09-30 12:23:28 · 112 阅读 · 0 评论 -
Java数据结构—前缀、中缀、波兰表达式
Java数据结构—前缀、中缀、波兰表达式逆波兰计算器代码实现中缀表达式转换为后缀表达式具体步骤逆波兰计算器完成一个逆波兰计算器,要求完成如下任务:输入一个逆波兰表达式(后缀表达式),使用栈(Stack), 计算其结果支持小括号和多位数整数,计算器进行简化,只支持对整数的计算思路分析例(3+4)X5-6对应的后缀表达式就是3 4 + 5 * 6 -,针对后缀表达式求值步骤如下:从左至右扫描,将3和4压入堆栈;遇到+运算符,因此弹出4和3 (4 为栈顶元素,3为次顶元素),计算出3+4原创 2021-09-28 22:28:44 · 215 阅读 · 0 评论 -
Java数据结构—栈
Java数据结构—栈定义栈的应用场景数组模拟栈代码实现课后练习栈实现综合计算器定义栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除原创 2021-09-24 20:52:25 · 144 阅读 · 0 评论 -
Java数据结构—环形链表
Java数据结构—环形链表构建一个单向的环形链表遍历环形链表代码实现完整代码构建一个单向的环形链表思路先创建第一个节点, 让 first 指向该节点,并形成环形后面当我们每创建一个新的节点,就把该节点,加入到已有的环形链表中即可遍历环形链表思路先让一个辅助指针(变量) temp,指向first节点然后通过一个while循环遍历 该环形链表即可 temp.next == first 结束代码实现遍历当前的环形链表 public void showBoy(){原创 2021-09-22 10:54:38 · 306 阅读 · 0 评论 -
Java数据结构—双向链表
Java数据结构—双向链表、环形链表分析代码实现遍历添加删除修改分析双向链表的遍历,添加,修改,删除的操作思路遍历方法和单链表一样,只是可以向前,也可以向后查找添加 (默认添加到双向链表的最后)(1)先找到双向链表的最后这个节点(2) temp.next = newHeroNode;(3) newHeroNode.pre = temp;修改思路和原来的单向链表一样.删除(1) 因为是双向链表,因此,我们可以实现自我删除某个节点(2) 直接找到要删除的这个节点,比如temp(3)原创 2021-09-21 15:34:50 · 89 阅读 · 0 评论 -
Java数据结构-单向链表
Java数据结构-单向链表1、链表2、代码实现3、实战面试题新浪面试题腾讯面试题百度面试题1、链表链表是有序的列表,但是它在内存中是存储如下小结:链表是以节点的方式来存储,是链式存储每个节点包含 data 域, next 域:指向下一个节点.如图:发现链表的各个节点不一定是连续存储.链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定2、代码实现使用带head头的单向链表实现 –水浒英雄排行榜管理 完成对英雄人物的增删改查操作定义HeroNode,每个HeroNod原创 2021-09-21 10:33:32 · 262 阅读 · 0 评论