摘要: 基本介绍 单向循环链表和单向链表基本一样,尾节点的next指向第一个节点 当链表中只有一个节点时,该节点的next指向本身 约瑟夫问题 基本介绍 设编号为 1,2,… n 的n个人围坐一圈,约定编号为 k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人 阅读全文
posted @ 2020-08-28 19:16 xiaokantianse 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 基本介绍 单向链表,查找只能是单向的,双向链表查找是双向的 单链表不能自我删除,需要找到删除节点的前一个节点,双向链表可以自我删除 双向列表操作思路 遍历:和单向一样,可向前,可向后 添加:可之间添加到最后,也可排序添加(考虑空链表,和没有找见位置,加到最后,否则会引发空指针) 修改:和单链表一样 阅读全文
posted @ 2020-08-27 17:55 xiaokantianse 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 获取单链表节点的有效个数(不统计头结点) 思路分析 遍历链表,统计个数 代码实现 // 获取链表的有效节点个数(不包含头节点) public static int getLength(HeroNode head) { int sum = 0; HeroNode temp = head.next; w 阅读全文
posted @ 2020-08-27 17:54 xiaokantianse 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 基本介绍 链表是一个有序的列表,以节点的方式存储,是链式存储 每个节点包含data域和next域,指向下一个节点 链表的各个节点不一定是连续存储 链表分为带头节点的链表和不带头结点的链表 代码实现 public class SingleLinkedListDemo { public static v 阅读全文
posted @ 2020-08-27 17:51 xiaokantianse 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 基本介绍 在上述队列的基础上进行改动,使这个队列可以重复使用,从而实现环形队列,数组中可预留一个空间?队列的实际长度是数组的长度-1 front 指向队列头元素 rear 执行队列尾元素的后一个位置 队列满的条件 (rear+ 1) % maxSize == front 取模可以防止索引越界 队列空 阅读全文
posted @ 2020-08-27 17:49 xiaokantianse 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 基本介绍 队列是一个 有序列表,可以用数组或是链表来实现 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出 代码实现 public class ArrayQueueDemo { public static void main(String[] args) { ArrayQueue 阅读全文
posted @ 2020-08-27 17:47 xiaokantianse 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组 处理方法 第一行:记录数组 一共有几行几列,有多少个不同的值 第二行以后:把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模 代码实现 public static void main(S 阅读全文
posted @ 2020-08-27 17:43 xiaokantianse 阅读(40) 评论(0) 推荐(0) 编辑