![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 92
热锅上的小猿
一个新手码农,一起学习,共同进步
展开
-
使用Java模拟单链表来解决约瑟夫问题(Sosepfu)
单向环形链表 : 首尾相连的意思问题描述: 设编号为1, 2,… n的n个人围坐一圈,约定编号为k (1<=k<=n) 的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。.解决的方法有多种,这里我们用单链表环形来解决思路:第一步需要模拟一个小孩节点;提供编号,和next//创建一个小孩节点class Boy{ private int no;//编号 private Boy原创 2020-08-24 12:27:22 · 212 阅读 · 0 评论 -
使用Java详细讲解双向链表的
1. 为什么要引入双链表?那我们就先来说一说单链表有一些缺点:其一:查找的方向只能是一个方向,也就是next遍历;其二:单链表不能实现自我删除,需要靠辅助节点。而双链表的出现就是为了解决上述两个问题2.双链表是什么样的?大家看图可以清晰发现,双链表比单链表多了一个pre:这个就是用来指向前一个节点的。那么就可以清晰感到为什么不需要辅助接点就可以删除了简单分析一下: 因为本身节点直接把它前一个结点的next指向本身节点next(后一个节点),而本身节点的下一个节点(next)的pre(前一个节点)原创 2020-08-23 22:59:47 · 222 阅读 · 0 评论 -
单链表总结:单链表中的必不可少的面试题
首先我们来总结一下所有所学的单链表认识:(大家可以看看我以前的文章)单链表的初步认识这篇文章主要讲解一些链表的基本认识,以及简单的代码模拟。单链表的顺序添加这篇文章主要讲解第一篇文章所提出的问题进行解答,以及思维。单链表的增删改查这篇文章主要用代码实现链表的增删改查。这三篇文章,需要你好好在自己的电脑上跑一遍,基本上你对单链表的认识就不仅仅局限在理论上了,在优化自己的代码的时候也知道如何下手了!接着和大家分享几道单链表的面试题(新浪、百度、腾讯)思路分析和代码演示。获取单链表节原创 2020-08-22 12:45:19 · 381 阅读 · 0 评论 -
单链表学习3:模拟链表中的增删改查
package com.pengmeng.linkedList;public class SingLinkedListDemo { //测试 public static void main(String[] args) { //先创建节点 HeroNode h1 = new HeroNode(1, "宋江", "及时雨"); HeroNode h2 = new HeroNode(2, "卢俊义", "玉麒麟"); HeroN原创 2020-08-21 08:44:45 · 114 阅读 · 0 评论 -
单链表初步学习2(顺序链表)
排序功能实现:原理如图所示形成条件也就是说:因为头节点不能用所以通过一个辅助执政temp来帮助我们添加位置;next:是指当前节点指向下一个节点的位置no:节点的编号我们分成几步来判断;第一步,temp.next == null,判断是不是在队尾;第二步,在temp的后面插入,也就是temp.next.no > 新节点.no,例如 插入3,4>3 ,所以可以把3.next =4;第三步,temp.next.no = = 新节点.no的时候,就是no编号存在。然后后移,直至找到,原创 2020-08-20 21:57:50 · 151 阅读 · 0 评论 -
数据结构:单链表初步学习1(顺序链表)
模拟单链表的创建使用过程!首先,链表分为顺序存储结构和链式存储结构。接下来,第一天我们初步讲解链表的介绍,以及代码模拟方法和特点;如上图的逻辑图,我们小结一番:链表以节点的方式存储每个链表包含data(数据域)和next(指针域),指针域就是指向下一个节点链表中的各个节点不一定是连续存储的链表可以有表头(head)也可以不要,根据自己情况决定。接着我们代码模拟一下:package com.pengmeng.linkedList;public class SingLinkedListD原创 2020-08-18 22:40:03 · 265 阅读 · 0 评论 -
JAVA中使用数组来实现循环队列的创建分析!
队列可以使用数组实现,也可以使用循环链表实现。 本次我们演示使用数组实现的!循环队列的产生:也就是顺序队列的 “假溢出” 问题,队列的存储空间未满,却发生了溢出。很好理解,比如 rear 现在虽然指向了最后一个位置的下一位置,但是之前队头也删除了一些元素,那么队头指针经历若干次的 +1 之后,遗留下了很多空位置,但是顺序队列还在傻乎乎的以为再有元素入队,就溢出呢!肯定不合理。故循环队列诞生!解决方法:将新元素插入到第一个位置上,构成循环队列,入队和出队仍按“先进先出”的原则进行。操作效率高、空间利用率.原创 2020-08-16 22:34:18 · 178 阅读 · 0 评论 -
java代码实现二维数组和稀疏数组之间转换
数据结构:稀疏数组 java代码实现二维数组和稀疏数组之间转换代码如下:public class SparseArray { public static void main(String[] args) { /** * 将二维数组转换为稀疏数组 */ // 创建一个原始二维数组 // 0 表示无子 1 :黑子 2:蓝字 int chessArr1[][] = new int [11][11]原创 2020-08-13 22:34:56 · 115 阅读 · 0 评论