数据结构与算法
学不明白后端的小菜鸡~
这个作者很懒,什么都没留下…
展开
-
leecode每日两题~持续更新
1、删除单链表中某个特定节点如:1 -> 2 -> 3 ->4 删掉2 变成 1 -> 3 ->4思路:首先方法中传参过来的那个节点就是要删的节点node,找到要删节点的下一个节点node.next,把node.next的值给了node(覆盖),也就变成了1 -> 3 -> 3 ->4,然后将node的指针指向node的下一个的下一个节点,也就是node.next.next,这样就会使得原来的3没有指针指向,被垃圾回收,所以最后变成1 ->原创 2021-11-10 21:13:06 · 4358 阅读 · 0 评论 -
七大排序相关代码(没有堆排序)
1.冒泡排序(O(n^2))【括号内为时间复杂度】package mian.Text;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;//80000万个数据检测速度:冒泡在该机器上用时:13秒public class maopao { public static void main(String[] args) {// int [] arr = {1,2,3,原创 2021-07-28 17:26:13 · 126 阅读 · 0 评论 -
java中你没见过的使=实用方法,减少代码量,你值得拥有
package com.main.Test;import com.sun.xml.internal.ws.util.StringUtils;import org.apache.commons.io.FileUtils;import java.io.File;import java.io.IOException;import java.nio.charset.Charset;import java.util.*;import java.util.stream.Collectors;pu原创 2021-07-16 18:00:06 · 106 阅读 · 0 评论 -
单向环形链表(Josepfu)
➢Josephu 问题Josephu 问题为:设编号为1,2, … n的n个人围坐一-圈,约定编号为k (1<=k<=n) 的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生-一个出队编号的序列。构建-个单向的环形链表思路1.先创建第-一个节点,让first指向该节点,并形成环形2.后面当我们每创建一个新的节点,就把该节点,加入到已有的环形链表中即可遍历环形链表1.先让一个辅助指针(变量)curBoy,指原创 2021-07-16 10:35:54 · 87 阅读 · 0 评论 -
双向链表CRUD
分析双向链表的遍历,添加,修改,删除的操作思路===》代码实现1)遍历方和单链表-样,只是可以向前,也可以向后查找2)添加(默认添加到双向链表的最后)(1)先找到双向链表的最后这个节点(2) temp.next =newHeroNode(3) newHeroNode.pre =temp;3)修改思路和原来的单向链表一样.4)删除(1)因为是双向链表,因此,我们可以实现自我删除某个节点(2)直接找到要删除的这个节点,比如temp(3) temp.pre.next = temp.next(原创 2021-07-15 17:02:53 · 78 阅读 · 0 评论 -
单链表大厂面试题
求单链表的有效个数(不算头节点)//求单链表的有效个数(不算头节点) public static int getLength(HeroNode head){ if (head.next == null){ return 0; } HeroNode temp = head.next; int length = 0; while (temp != null){ length+原创 2021-07-15 14:22:38 · 84 阅读 · 0 评论 -
单链表简单的增删改查
1)链表是以节点的方式来存储,是链式存储2)每个节点包含 data域,next域:指向下一个节点.3)如图: 发现链表的各个节点不一定是连续存储.4)链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定思路分析:添加(创建)1.先创建- -个head头节点,作用就是表示单链表的头2.后面我们每添加一-个节点,就直接加入到链表的最后遍历:代码实现:(按添加顺序排序)package com.main.dataStructures;public class SingleLinked原创 2021-07-13 18:02:33 · 103 阅读 · 1 评论 -
普通队列和环形队列
普通思路分析:1)将尾指针往后移: rear+1, 当front== rear [ 空]2)若尾指针rear小于队列的最大下标maxSize-1,则将数据存入rear所指的数组元素中,否则无法存入数据。rear == maxSize- 1[队列满]代码实现:package com.main.dataStructures;public class ArrayQueueDemo{ public static void main(String[] args) { ArrayQ原创 2021-07-13 15:12:54 · 152 阅读 · 0 评论 -
稀疏数组及io写入和读取
package com.main.dataStructures;import java.io.*;import java.util.ArrayList;import java.util.Arrays;import java.util.List;//1.创建一个二维数组//2.将二维数组转换为稀疏数组//3.将稀疏数组保存到磁盘中//4.读取磁盘中的文件,转换为稀疏数组//5.将稀疏数组转换为二维数组public class SparseArray { public stati原创 2021-07-12 13:16:23 · 184 阅读 · 0 评论