
数据结构
文章平均质量分 70
狂徒张三
997的程序员
展开
-
从零开始的数据结构与算法(1)数组(更新中)
代码以上传至github经过了五个月没有刷力扣,我已经变成了个沙口,为了应对实习,决定重头刷数据结构与算法的题。好的,那让我们开始吧。目录:数组的查找算法数组的排序算法Java中Array、ArrayList、Vector的区别一、数组的查找算法对于常用的查找算法,就是顺序查找与二分查找,这里就不讲顺序查找了,太简单,时间复杂度为n。二分查找:/*二分查找:时间复杂度为 logn算法思路:通过比较中间秩与目标数的大小,确定找到并执行返回对应秩,将左边界设为中间秩+1,将右边界设为原创 2020-09-14 12:10:55 · 212 阅读 · 0 评论 -
二叉树的后继节点
一、二叉树的后继节点:简单来讲就是在中序遍历中某节点的下一个节点。二、如何判断后继节点如果一个节点有右孩子,那么后继节点就是该节点的右子树的最左叶节点假设节点为1,那么后继节点为6(最左叶节点)2.如果没有右孩子说明以这个节点为根节点的子树遍历完成,应该访问父节点,若该节点是右节点,说明以父节点为根节点的子树遍历完成,再次访问祖父节点,以此类推,直到改节点为左孩子,或者父节点为null。三、代码如下:public class BinNode{ int value; BinNode l原创 2020-08-25 12:31:44 · 5369 阅读 · 7 评论 -
一文搞懂BFS与DFS
在上一篇中我们学习了数据结构中的图,以及对图进行的动态操作,本章我们将会介绍图非常重要的算法BFS与DFS对于图的遍历,结果相同,区别在于遍历的策略(节点的访问顺序)广度优先搜索(BFS):策略:越早被访问的节点,其邻居越早被选用。简单来说,就是一个节点被访问后,会优先遍历这个节点的邻居。直观点,就是围绕初节点,一层一层的遍历,和二叉树中的层次遍历也是BFS。时间复杂度:首先对所有节点和...原创 2020-03-13 10:39:52 · 476 阅读 · 0 评论 -
必会的数据结构之图
对于图:可以理解为是一种复杂的树,每一个点之间都可以相连关于图的基本知识,什么入度,出度,通路,简单图等这里就不介绍了。咱们直接上怎么建一个图如何建图:建图的形式分两种,邻接矩阵与邻接表。本文主要介绍邻接矩阵建图的方式,会适当介绍下邻接表。第一步:表示一个基础图一个图有边与点,所以我们首先需要确定好每个点和边的状态以便于后续的算法的使用typedef enum{UNDISCOVERED...原创 2020-03-06 17:22:15 · 186 阅读 · 0 评论 -
必会的数据结构之二叉树遍历专场
说起二叉树,各位小伙伴肯定不陌生,咱就开个二叉树栏目,今儿就先聊聊二叉树的遍历这二叉树遍历分四种,先中后以及层次遍历。本文只介绍迭代的方式。一、先序遍历:这个先序遍历,它的遍历顺序是,先读父节点,再读左子节点,再读右子节点因为每次读取,都是先本节点,然后读左节点,最后读右节点,按照这个步骤,我们可以沿着左节点下降,同时将同高度的右子树的根节点入栈。只到叶节点,然后弹出栈顶节点(刚刚读过的...原创 2020-03-02 14:52:11 · 216 阅读 · 0 评论