数据结构
文章平均质量分 68
蓝莓味营养快线
这个作者很懒,什么都没留下…
展开
-
初识集合框架
目录1.集合框架的介绍1.1Collection示例2.Map示例3.泛型的理解3.1简答题1.集合框架的介绍 简单来说,java集合框架就是java写好的一些数据结构,并定义在java.until包下面。并且以后的集合,都需要导入这个包。下面是我们经常遇到的一些类和接口:1.1Collection示例2.Map示例3.泛型的理解假设我们先简单写一个顺序表:class MyArrayList {...原创 2021-12-27 22:08:03 · 306 阅读 · 0 评论 -
KMP算法和next数组详解
KMP算法主要是用来求解子串在主串中第一次出现的位置,并返回这个子串的位置的一种提高效率的方法。在讲解KMP算法之前,我们先来看看求子串在主串中位置的一般解法,即暴力解法。1.暴力解法 public static int BF(String str,String sub){ if(str == null || sub == null){ return -1; } int lenStr = str.length();.原创 2022-01-03 16:25:51 · 470 阅读 · 0 评论 -
ArrayList的使用和源码分析
1.基本数据类型和包装类这里面包装类就是基本数据类型的首字母大写,除了Integer和Character。在这里我们就介绍一下装箱和拆箱的意思。装箱也叫装包:把简单类型变为包装类类型拆箱也叫拆包:把包装类类型变为简单类型举例:public static void main(String[] args) { Integer a = 123;//装箱 装包 int b = a;//拆箱 拆包(隐式的) System.out.pr.原创 2021-12-28 16:52:31 · 3222 阅读 · 0 评论 -
ArrayList习题练习
目录1.打印学生成绩2.删除第一个字符串中出现的第二个字符串中的字符3.利用Collections.sort进行排序4.实现一个扑克牌,并实现扑克牌的发牌和揭牌4.1先建一个Card的类4.2实现一个买牌的函数:4.3进行洗牌4.4调用发牌和揭牌的类:4.5开始揭牌:5.杨辉三角1.打印学生成绩假设有若干学生(学生对象放在一个List中),每个学生都有一个姓名(String)、班级(String)和考试成绩属性(double),一次考试结束之后,每个学生都..原创 2021-12-31 17:22:53 · 745 阅读 · 0 评论 -
数据结构之哈希表
1.内部类1.1实例内部类如果非要定义一个静态变量在内部类中,则要将其变为静态常量即: public static final int data6 = 6;那么我们如何让来实例内部类对象呢?1.2内部类的应用场景内部类一般在链表的应用比较多,比如:class MyLinkedList { class Node{ }}通过后台我们可以看见,内部类的字节码文件是这样的:那么如果实例内部类当中和外部类有同...原创 2022-02-25 23:52:36 · 458 阅读 · 0 评论 -
数据结构之二叉搜索树
目录1.二叉树的概念2.搜索二叉树的简单操作2.1查找val2.2插入节点2.3删除节点2.4测试代码正确性1.二叉树的概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:(1)若它的左子树不为空,则左子树上所有节点的值都小于根节点的值。(2)若它的右子树不为空,则右子树上所有节点的值都大于根节点的值, 它的左右子树也分 别为二叉搜索树。2.搜索二叉树的简单操作2.1查找val//构建节点class No...原创 2022-02-25 01:59:55 · 528 阅读 · 0 评论 -
数据结构之初识二叉树
1.树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。节点的度:一个节点含有的子树的个数称为该节点的度树的度:一棵树中,最大的节点的度称为树的度; 如上图:树的度为6叶子节点或终端节点:度为0的节点称为叶节点双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点; 如上图:B是A的孩子原创 2022-02-14 01:31:16 · 411 阅读 · 0 评论 -
常用的排序算法
我们常用的排序算法有插入排序、选择排序、交换排序和归并排序四种算法,这四种算法各自有各自的优缺点,接下来我们就仔细来看看这几种算法。1.直接插入排序代码展示:public void insertSort(int[] array){ for (int i = 1; i < array.length; i++) { int tmp = array[i]; int j = i-1; for (;..原创 2022-02-12 15:13:41 · 415 阅读 · 0 评论 -
优先级队列(堆)
1.堆的概念堆在逻辑上是一颗完全二棵树。堆在物理上是保存在数组中。满足任意结点的值都大于其子树中结点的值,叫做大堆,或者大根堆,或者最大堆,反之,则是堆,或者小根堆,或者最小堆。我们可以用PriorityQueue来表示那我们再了解堆的使用方法之前,先来自己实现一个堆2.public class TestHeap { public int[] elem; public int usedSize; public TestHeap(){ t原创 2022-01-28 23:53:11 · 845 阅读 · 0 评论 -
java对象的比较
1.java插入数据我们都知道优先级队列在插入元素时必须是两个元素之间可以进行比较,并且不能插入null,那么其中间是否可以插入自定义类型呢?从图我们可以看见,在优先级队列里面插入自定义类型是允许的。我们在PriorityQueue中插入数据时,必须和之前的元素相比较,主要是因为PriorityQueue默认的是小根堆,插入一个元素,必须和堆顶元素比较,然后调整剩下的元素成小根堆。而关于对象的比较,我们有三个比较的方法:(1).equals() 比较两个对象相不相同(2).利用Com原创 2022-01-28 23:44:49 · 725 阅读 · 0 评论 -
数据结构之栈和队列
目录1.栈1.1栈的概念2.栈的实现2.1顺序表实现栈2.2链表实现栈3.队列3.1队列的概念3.2队列的实现1.栈1.1栈的概念 栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈 顶,另一端称为栈底。栈中的数据元素遵守先进后出。2.栈的实现2.1顺序表实现栈顺序表底层是个数组public class MyStack { public int[] elem; ...原创 2022-01-16 23:52:24 · 265 阅读 · 2 评论