数据结构和算法
zxy6816
这个作者很懒,什么都没留下…
展开
-
环型单向链表——约瑟夫问题
Josephu (约瑟夫)问题 Josephu问 题为:设编号为1, 2, … n的n个人围坐- -圈,约定编号为k (1<=k<=n) 的人从1开始报数,数到 m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此 产生-一个出队编号的序列。 思路分析 用一个不带头结点的循环链表来处理Josephu问题: 先构成-一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,原创 2020-05-12 15:55:35 · 129 阅读 · 0 评论 -
队列与环型队列
目录使用场景基本介绍数据模拟队列模拟思路分析代码实现测试数组模拟环型队列模拟思路分析代码实现测试 使用场景 java根据队列的数据结构封装以下的队列:并发队列ConcurrentLinkedQueue、阻塞队列AraayBlockingQueue、阻塞队列LinkedBlockingQueue 基本介绍 队列是-一个有序列表,可以用数组或是链表来实现。 2)遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出 3)示意图: (使用数组模拟队列示意图) 数据模拟队列 模拟思路分析 队列原创 2020-05-12 12:32:08 · 134 阅读 · 0 评论 -
稀疏数组——棋子存盘与恢复案例完整实现
基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 1)记录数组一共有几行几列,有多少个不同的值 2)把具有不同值的元素的行列及值记录在-一个小规模的数组中,从而缩小程序的规模 应用实例 使用稀疏数组,来保留类似前面的二维数组(棋盘、地图等等) 把稀疏数组存盘,并且可以从新恢复原来的二维数组数 整体思路分析 二维数组转稀疏数组的思路 1.遍历原始的二维数组,得到有效数据的个数sum 2.根据sum就可以创建稀疏数组sparseArr i原创 2020-05-12 12:27:15 · 164 阅读 · 0 评论