摘要: 管理单向链表的缺点分析: 单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。 单向链表不能自我删除,需要靠辅助节点 ,而双向链表,则可以自我删除,所以前面我们单链表删除节点时,总是找到 temp,temp 是待删除节点的前一个节点。 双向链表如何完成遍历,添加,修改和删除的思路 1 阅读全文
posted @ 2020-10-15 21:59 白刃天使 阅读(930) 评论(0) 推荐(0) 编辑
摘要: 一、求单链表中有效节点的个数: 1. //获取链表中的有效节点数 2. //方法:获取到单链表的节点的个数(如果是带头结点的链表,需求不统计头节点) 3. public static int getLength(hero head) { 4. if (head.getNext() == null)  阅读全文
posted @ 2020-10-15 21:45 白刃天使 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 问题:使用带 head 头的单向链表实现 –英雄列表管理完成对英雄人物的增删改查操作。 首先准备一个hero类: 1. class hero { 2. private int num;//序号(排名) 3. private String name;//名称 4. private String nik 阅读全文
posted @ 2020-10-15 20:56 白刃天使 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 链表介绍 链表是有序的列表,但是它在内存中是存储如下: 说明: 1) 链表是以节点的方式来存储,是链式存储2) 每个节点包含 data 域, next 域:指向下一个节点.3) 如图:发现链表的各个节点不一定是连续存储.4) 链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定 单链表(带头 阅读全文
posted @ 2020-10-15 17:54 白刃天使 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 1) 队列是一个有序列表,可以用数组或是链表来实现。2) 遵循先入先出(FIFO)的原则。即:先存入队列的数据,要先取出。后存入的要后取出3) 示意图:(使用数组模拟队列示意图) 数组模拟队列思路 队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 阅读全文
posted @ 2020-10-15 17:46 白刃天使 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 1. /** 2. * 练习,1、将得到的稀疏数组保存到文件map.txt中 3. */ 4. FileWriter writer = null; 5. try { 6. File file = new File("E:\\IDEA Project\\DataStructures\\SparseAr 阅读全文
posted @ 2020-10-15 17:32 白刃天使 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 应用实例 1) 使用稀疏数组,来保留类似前面的二维数组(棋盘、地图等等)2) 把稀疏数组存盘,并且可以从新恢复原来的二维数组数3) 思路分析: 二维数组转稀疏数组的思路: 1、遍历原始二维数组,得到有效数据的个数 :sum 2、根据sun就可以创建稀疏数组:sparseArr int[sum+1][ 阅读全文
posted @ 2020-10-15 17:29 白刃天使 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 问题引入: 因为该二维数组的很多值是默认值 0, 因此记录了很多没有意义的数据.-->稀疏数组 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 1) 记录数组一共有几行几列,有多少个不为0的值 ) 把具有不同值的元素的行列及值记录 阅读全文
posted @ 2020-10-15 17:24 白刃天使 阅读(67) 评论(0) 推荐(0) 编辑