Data Structure
Any of various methods or formats (such as an array, file, or record) for organizing data in a computer.
TYP_MOON
这个作者很懒,什么都没留下…
展开
-
【DS】时间复杂度排序
O(1) < O(log2n) < O(n) < O(nlog2n) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)原创 2020-08-03 00:17:26 · 166 阅读 · 0 评论 -
图的遍历(Java)构造器
图的遍历一、DFS(Depth First Search)概念:从初始访问点出发,访问其第一个邻接节点;然后把这个邻接节点作为初始节点,继续访问它的第一个邻接节点。即每次都在访问完当前节点过后,访问它的第一个邻接节点。算法:访问初始节点v(下标),并标记v已被访问;查找节点v的第一个邻接节点w(下标);如果w存在,则继续4步骤;如果w不存在,则返回1步骤;如果w未被访问过...原创 2020-03-21 12:12:05 · 202 阅读 · 0 评论 -
图的概念和构造方法(Java)
图一、基本概念: 图中的节点可以有0个或多个前驱和后继节点(相邻元素),两个节点之间的连线称为边,节点也可以成为顶点。二、基本属性:顶点、边、路径、无向图有向图、带权图三、表示方式:邻接矩阵(用数组写)表示图形中顶点之间相邻关系的矩阵。邻接表(大多数情况直接用链表写,也可以用链表和数组写)对比邻接矩阵(每个节点都要分配n条边的空间),邻接表只关心存在的边...原创 2020-03-20 23:48:04 · 718 阅读 · 0 评论 -
双向链表
双向链表按照编号顺序加入新节点:public class doubleLinkedListDemo { public static void main(String[] args) { // TODO Auto-generated method stub // 测试双向链表 //// 第一阶段测试代码 // 创建节点 HeroNode2 hero1 = new He...原创 2020-03-19 19:36:26 · 153 阅读 · 0 评论 -
双向链表
双向链表概念:对比单向链表只能通过next向后遍历查询节点,双向链表可以向前或者向后查询节点;删除节点的操作①单链表:需要依靠辅助变量temp(temp指向待删除节点的前一个节点)②双线链表:自我删除结构 |pre|data|next|(对比之下单链表的结构) |data|next|基本操作...原创 2020-03-19 10:15:45 · 102 阅读 · 0 评论 -
单链表进阶学习 三段
单链表进阶学习 三段从尾到头打印单链表:思路:实际意义就是逆序打印单链表;利用栈的操作,先进后出,实现逆序打印效果。(注:不建议直接对单链表进行反转操作。这样会破坏链表本身的结构,在做题和练习的时候可以尝试,但在工作中考虑到链表的重复使用,最好习惯使用栈数据结构的思想来操作)演示栈:要单个取出栈元素的操作import java.util.Stack;public cl...原创 2020-03-18 16:52:11 · 137 阅读 · 0 评论 -
单链表进阶学习 二段
单链表进阶学习 二段一、单链表的反转思路:定义一个新节点,reserveHead=new HeroNode();利用辅助变量temp遍历原来的链表,每遍历一个节点就将其取出,放在新建链表的最前端;(这里可能理解上有些难度,举一个简单的例子: 首先遍历到原来链表第一个节点,取出,接到新节点reserveHead的后面;接着遍历到原来链表的第二个节点,取出,这个时候把reser...原创 2020-03-18 15:35:29 · 260 阅读 · 0 评论 -
单链表进阶学习
单链表进阶学习 写题思路都在代码里一、求单链表中有效节点的个数public class SingleLinkedListDemo { public static void main(String[] args) { // TODO Auto-generated method stub //// 第一阶段测试代码 // 创建节点 Hero...原创 2020-03-16 23:49:13 · 149 阅读 · 0 评论 -
单链表删除、修改和查找
相声讲究说学逗唱 链表讲究增删查改上一篇blog里演示了单链表的增加节点的操作,下面演示单链表的删除、修改和查找的操作。...原创 2020-03-16 22:23:26 · 171 阅读 · 0 评论 -
链表
链表概念:链表通过节点的方式来存储数据;分有两个域组成:data域(存储数据),next域(指向下一个节点的索引,链表结束的时候给next域赋值为NULL);链表的各个节点不一定是连续存储的;链表分为带头结点(头节点不存放数据,在一个链表中只起到连接的作用)和不带头结点的链表。(注:这里虽然看起来是顺序的,但实际上next域指向的下一节点不一定都是连续的,这个图只是便于理解,但是不...原创 2020-03-16 15:30:58 · 475 阅读 · 0 评论 -
队列
队列简单来说,队列是一个有序列表,通常使用数组或者链表来实现。示意图:往队列里插入数据的方式就是先进先出,只能从队列头尾插入数据,不能从队列中间插入...原创 2020-03-15 21:47:00 · 270 阅读 · 0 评论 -
Java实现二维数组和稀疏数组的转换
稀疏数组当你编写的二维数组中存在很多不用的点但初始化时都赋值为0时,这个二维数组的观赏性很低并且非常浪费存储空间,这个时候会选择使用稀疏数组对这个二维数组进行简化压缩。稀疏数组是当一个数组大部分为0或为同一元素时,对这个数组的一种简化的保存形式。常见的处理方式就是:①记录这个数组有几行几列,并把不同值的元素保存下来。②记录不同值元素的坐标,并把它保存在一个小数组中,从而缩小程序规模。用一...原创 2020-03-15 00:28:41 · 229 阅读 · 0 评论