算法
文章平均质量分 61
霓乤
努力的码农
展开
-
约瑟夫环问题(单向循环链表实现)
约瑟夫环问题问题描述单向循环链表介绍构造链表解决约瑟夫问题测试代码问题描述1.Josephu 问题为:设编号为 1,2,… n 的 n 个人围坐一圈,约定编号为 k(1<=k<=n)的人从 1 开始报数,数到 m 的那个人出列,它的下一位又从 1 开始报数,数到 m 的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。2.提示:用一个不带头结点的循环链表来处理 Josephu 问题:先构成一个有 n 个结点的单循环链表,然后由 k 结点起从 1 开始计数,计到 m 时原创 2021-05-31 18:34:28 · 1062 阅读 · 0 评论 -
数据结构-双向链表
介绍定义图解单链表的缺点:遍历添加 (默认添加到双向链表的最后)修改删除指定位置插入Node类DoubleLinkedList类测试类结果定义1.定义:双向链表(双链表)是链表的一种。和单链表一样,双链表也是由节点组成,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。图解2.图解·:与单列表的比较定义图解单链表的缺点:遍历添加 (默认添加到双向链表的最后)修改删除指定位置插入Node类DoubleLinkedList类测试类结果单链表的缺点:单向链表,查找的方向只能是一个方向,原创 2021-05-30 18:03:58 · 88 阅读 · 0 评论 -
数据结构-稀疏数组转换
1.稀疏数组 稀疏数组可以看做是普通数组的压缩,但是这里说的普通数组是值无效数据量远大于有效数据量的数组,当一个数组中大部分元素为0(相同数字,可以是0,1,...), 或者为同一个值的数组时,可以使用稀疏数组来保存该数组。1 1 1 1 1 1 1 5 1 1 1 1 15 1 1 1 1 1 ------------------------------> ...原创 2021-04-07 23:57:15 · 175 阅读 · 1 评论 -
数据结构-队列(数组实现)
1.本文利用数组进行简单地队列实现操作思想很简单:front指向第一个元素的前一个位置,初始化front=-1rear指向队尾元素,初始化rear=-1rear控制入队,front控制出队,算法很简单,直接看代码2.缺点;在入队,出队操作中,前面的空间造成了浪费,不能充分利用数组空间。3.改进算法:(环形队列)参考:https://blog.csdn.net/m0_46633875/article/details/115497667?spm=1001.2014.3001.5502原创 2021-04-07 23:38:55 · 98 阅读 · 1 评论 -
数据结构-环形队列(数组实现)
问题探讨:单向数组实现环形队列的缺点:不能充分利用数组空间针对单向数组的改进:环形队列的思想:1.front含义改变:front指向队列的第一个元素,初始化front=02.rear含义改变:指向队列最后一个元素的后一个位置,空出一个空间作为约定,初始化rear=0;(rear前一个元素为队列的最后一个元素,rear指向空位置的)3.队满条件:(rear+1)%maxsize=front(我们大可想象成一个收尾相连的环形数组(不太严谨,我的鄙见),rear+1就相当于指向了...原创 2021-04-07 23:32:11 · 376 阅读 · 0 评论