
数据结构
捻玖
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
愤怒的小鸟
Kiana 最近沉迷于一款神奇的游戏无法自拔。简单来说,这款游戏是在一个平面上进行的。有一架弹弓位于 (0,0) 处,每次 Kiana 可以用它向第一象限发射一只红色的小鸟, 小鸟们的飞行轨迹均为形如 y=ax2+bx 的曲线,其中 a,b 是 Kiana 指定的参数,且必须满足 a原创 2022-10-05 17:08:22 · 820 阅读 · 0 评论 -
1006 换个格式输出整数
让我们用字母B来表示“百”、字母S表示“十”,用12...n来表示不为零的个位数字n(原创 2022-10-07 23:20:14 · 124 阅读 · 0 评论 -
力扣175. 组合两个表
编写一个SQL查询来报告 Person 表中每个人的姓、名、城市和州。地址表中没有 personId = 1 的地址,所以它们的城市和州返回 null。该表的每一行都包含一个 ID = PersonId 的人的城市和州的信息。addressId = 1 包含了 personId = 2 的地址信息。该表包含一些人的 ID 和他们的姓和名的信息。addressId 是该表的主键列。personId 是该表的主键列。以 任意顺序 返回结果表。查询结果格式如下所示。表: Address。原创 2022-11-12 09:44:01 · 111 阅读 · 0 评论 -
力扣176. 第二高的薪水
编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水。如果不存在第二高的薪水,查询应该返回 null。DISTINCT 用于筛选唯一值,可以作用于单个列或者多个列。用于筛选唯一值,可以作用于单个列或者多个列。表的每一行包含员工的工资信息。id 是这个表的主键。查询结果如下例所示。原创 2022-11-12 10:25:06 · 201 阅读 · 0 评论 -
统计数字问题
一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排, 每个页码都不含多余的前导数字0。例如,第6页用数字6表示,而不是06或006等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2,…,9。原创 2023-02-21 17:51:55 · 100 阅读 · 0 评论 -
数据结构(链表题)
尾插法 头插法 输出 输出列表的长度 执行位置插入,第一个是要插入的数,第二个是位置 指定位置删除 找到链表的中间值,只能遍历一次 判断是否成环 找到成环的位置 在原链表上进行翻转 截取出单链表的后k个节点 public class LInkList { Node head = null;//定义头节点 //尾插法 public void insert(int val){ //创建节点 Node node = new Node(v原创 2022-03-12 23:12:01 · 990 阅读 · 0 评论 -
java数字金字塔
import java.util.*; public class shuzi { public static void main (String[] args) { int i,j,k,n; Scanner input = new Scanner(System.in); n = input.nextInt(); for ( i=1 ; i<=n ; i++ ){ for ( j=0 ; j<n-i .原创 2022-03-15 23:42:06 · 1359 阅读 · 0 评论 -
数据结构(研究在内存当中如何存储数据)
1.什么是数据结构(研究在内存当中如何存储数据) 数据在计算机中是如何存储的? 存储的介质:内存条,磁盘 固态硬盘(比较快)拥有访问次数限制,而磁盘没有 磁盘存储原理图 内存条: cpu计算一个数据大约在0.2ns左右,机械臂移动是ms级。磁盘寻址3-5ms。所以就有了内存条。 原理:“电容”。大约在20ns左右 ----------------------------------------------------------------------------------原创 2022-03-09 23:07:38 · 417 阅读 · 0 评论 -
用两个栈实现一个一个队列
package stack; import java.util.Stack; public class TwoStacktoQueue { Stack<Integer> stack1 = new Stack<>(); Stack<Integer> stack2 = new Stack<>(); public void push(Integer data){ stack1.push(data); } .原创 2022-03-18 23:03:28 · 203 阅读 · 0 评论 -
判断元素出栈的合法性
package stack; import java.util.Stack; public class StaticShun { public boolean hhh(int[] pushed,int[] poped){ Stack<Integer> stack = new Stack<>(); int i = 0; for (int num:pushed){ stack.push(num...原创 2022-03-18 23:05:52 · 235 阅读 · 0 评论 -
力扣693. 交替位二进制数
给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同 示例 1: 输入:n = 5 输出:true 解释:5 的二进制表示是:101 示例 2: 输入:n = 7 输出:false 解释:7 的二进制表示是:111. 示例 3: 输入:n = 11 输出:false 解释:11 的二进制表示是:1011. charAt方法 charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。 语法 pub原创 2022-03-28 18:08:26 · 92 阅读 · 0 评论 -
java求最大公约数最小公倍数
package abc; public class digui { public static void main(String[] args){ gongbeishu(6,8); gongyueshu(24,16,12); } public static void gongyueshu(int a,int b,int c){ int min = a < b ?a : b; min = min < c .原创 2022-03-16 11:10:04 · 374 阅读 · 0 评论 -
用两个队列实现一个栈
package stack; import java.util.LinkedList; import java.util.Queue; public class QueueToStack { Queue<Integer> queue1 = new LinkedList<>(); Queue<Integer> queue2 = new LinkedList<>(); //数据放入 public void push(Integ.原创 2022-03-18 23:04:48 · 206 阅读 · 0 评论 -
数据结构--链表
数组地址是连续的,且大小不可变 链表地址不连续,方便删除。 应用:内存条主要用数组存储,他快。磁盘删除应用比较多,链表方便。 对链表进行学习 栈中先要main方法入栈 new:在堆内存开辟一个内存空间,创建对象 类是创建对象的模板 对象名只想我们的地址 类型 对象名 = new 类型(); 类型控制着我们对地址的引用; LInklist类 package Shujujiegou; public class LInkList { Node head = n原创 2022-03-11 23:25:42 · 647 阅读 · 0 评论 -
实现一个栈,要求出栈,入栈,返回最小值的时间复杂度为O(1);
package stack; import java.util.Stack; //实现一个栈,要求出栈,入栈,返回最小值的时间复杂度为O(1); public class StackMin { static Stack<Integer> num = new Stack<>(); static Stack<Integer> min = new Stack<>(); //入栈 public void push(Integer d.原创 2022-03-18 23:02:25 · 370 阅读 · 0 评论 -
josephus约瑟夫环问题
import java.util.Scanner; //约瑟夫环 public class josephus { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt();//一共多少人 int s = scan.nextInt();//开始位置 int d = scan.nextInt..原创 2022-03-15 23:40:49 · 126 阅读 · 0 评论 -
java螺旋方阵
有具体实例 package abc; import java.util.Arrays; public class luoxuanfangzhen { public static void main(String[] args){ int[][] a = {{1,2,3,4},{12,13,14,5},{11,16,15,6},{10,9,8,7}}; luoxuan(a); } public static void luoxuan(int[][原创 2022-03-16 11:09:05 · 374 阅读 · 0 评论 -
树的遍历与删除
二叉排序树:要求,一个节点的左子树值一定小于等于该节点,右子树的值一定大于该节点 构建有序二叉树: 递归:方法调用其本身:循环 递归表达式 递归出口 package tree; import java.util.LinkedList; public class BinaryTree { // 新建代表整棵树的节点 TreeNode root; public void insert(Integer value){ // 新建一个节点 T原创 2022-03-31 17:35:17 · 1223 阅读 · 0 评论 -
有序二叉树,平衡二叉树,二三四树,红黑树
有序二叉树: 平衡二叉树具有以下特点: 1)它是一颗空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两颗子树都是一颗平衡二叉树。 2)平衡因子: 左子树的高度 - 右子树的高度 我们将平衡因子的绝对值小于1的的有序二叉树称为平衡二叉树 旋转:LL,RR LL RR LR RL 造成不平衡的节点最后插入 红黑树 红黑树:介于有序二叉树和平衡二叉树之间的树,最优二叉树 二三四树 红黑树 红黑树中的节点不是红色就是黑色 红黑树中根节点一定是黑原创 2022-03-31 17:38:21 · 1008 阅读 · 0 评论 -
八大排序之---归并排序
归并排序:合并有序数列 归并排序步骤: 1.将一个数组拆分成两份(从中间拆开)。 定义最左侧指针为low,右侧为high,中间指针mid=(low+high)/2 2.然后通过递归的方法继续拆分 3.将数组分成一个个的数,然后按顺序合并 (以一半为例分) (以整个为例分) (分加合并) (动图演示) 代码如下(代码注释可以参考) package com.qcby; import java.util.Arrays; public class gui { publ.原创 2022-02-10 21:32:51 · 353 阅读 · 0 评论 -
八大排序之---堆排序
堆排序:堆排序是利用堆这种数据结构而设立的一种排序算法 学习堆排序的时候要先掌握以下规律 1. N[i]的左节点:N[2i+1] 2. N[i]的右节点:N[2i+2] 3. N[i]的父节点:N[(i-1)/2)] 堆排序基本思想:构建大顶堆,将顶堆元素与最后一个元素交换,然后再将剩下节点重新构建大顶堆,反复进行最后可得有序数列 堆排序步骤举例 1:构建大顶堆 2.:首先,构建p指针指向数组最后一位数据。然后构建parent,lchild指针,lc...原创 2022-02-10 20:21:54 · 154 阅读 · 0 评论 -
八大排序之---基数排序
基数排序:将整数按位切割成不同的数字,然后按每个位数分别比较。 具体步骤:1.先比较所有数的个位数大小,将个位数相同的书放在同一个桶里面,然后按顺序拿出摆放好(先进后出) 2.按照十位数进行排序 3.以此类推直至最大的数排完 ...原创 2022-02-10 20:59:56 · 502 阅读 · 0 评论 -
八大排序之---快速排序
快速排序作为八大排序的一种。 下面用例子来讲一下。 快速排序步骤:分为两大步 一:第一次排序 1:先把数组当中最左边的数当成基数。 2:定义i和j指针 3:向左移动j指针,找第一个小于基数5的数。向右移动i指针,找到比基数5大的数,然后交换 4:当i与j两指针相遇后,将相遇处数值与基数交换。 5:经过第一次排序后,我们会发现基数位置的左边的数都比基准数小,右边都比基准数大 二:采用递归的方法 1:以相遇处为基准,将数组分开原创 2022-02-10 17:52:06 · 827 阅读 · 0 评论 -
数据结构小记
数据结构 数组,链表,栈,队列,字符串,树,图 数据结构分类{地址连续存储 {地址非连续性存储 {数据结构:数据在内存中如何让存储(数组,链表) {算法:解决问题的方法 单向链表只能指向它的下一位 数组地址连续,链表不连续。 /////java是强数据类型语言 /////js弱类型语言 int 1(符号) 31 float 1(符号) 8(小数) 23 ================================...原创 2021-12-12 18:03:24 · 559 阅读 · 0 评论