数据结构
文章平均质量分 92
测试小姐姐~
不以物喜 不以己悲
展开
-
【数据结构】java中对象的比较equal、Comparble、Comparator【详解篇8】
文章目录java中对象的比较关于对象值相等的比较三种比较风格覆写基类的equal关于对象值大于、等于、小于的比较--基于自然顺序(按照<小于号的形式)基于Comparble接口类的比较关于对象值大于、等于、小于的比较-- 基于比较器比较基于Comparator接口类的比较三种比较方式对比java中对象的比较关于对象值相等的比较三种比较风格比较身份:==,通过等号来比较身份比较值:通过使用equals方法,它是Object这个祖宗类所提供的的一个方法,也可以自己写个类,重写equals,自原创 2021-10-25 08:49:50 · 1000 阅读 · 7 评论 -
【数据结构】七大基于比较的排序算法和原理-图文并茂【详解篇7】
文章目录排序概念稳定性一、插入排序插入排序的基本原理和过程插入排序的实现插入排序的性能分析折半插入排序(没讲)二、希尔排序希尔排序的基本原理和过程希尔排序的实现插入排序的性能分析三、选择排序选择排序的基本原理和过程选择排序的实现选择排序的性能分析四、双向选择排序(了解)五、堆排序堆排序的基本原理和过程堆排序的实现堆排序的性能分析六、冒泡排序冒泡排序的基本原理和过程冒泡排序的实现冒泡排序的性能分析七、快速排序(重要)快速排序的基本原理和过程快速排序的实现快速排序的性能分析非递归方式实现快速排序快速排序的优化.原创 2021-10-24 23:23:14 · 542 阅读 · 1 评论 -
【数据结构】堆和堆的应用之优先级队列【详解篇6】
文章目录队列的几种变化二叉树的顺序存储存储方式下标关系堆(heap)堆的核心操作向下调整向上调整堆的应用堆(优先队列)的基本操作内部原理java中的优先级队列堆的其他应用-TopK 问题如:给定100亿个数字,找出其中前1000大的数字一个典型的TopK问题队列的几种变化普通的队列:先进先出带优先级的队列(名字叫队列,本质上是一个特殊二叉树–>堆):按照顺序进,出队列的时候出优先级最高的元素,如果优先级相同,再按照先进先出的方式。带类型的队列(消息队列):这里的类型指的不是int,Stri原创 2021-10-22 09:08:08 · 298 阅读 · 0 评论 -
【数据结构】二叉树【详解篇5】
文章目录树型结构-概念重要概念了解概念树与非树(图)的差别树的表示形式二叉树(重点)概念二叉树的基本形态两种特殊的二叉树二叉树的性质二叉树的存储二叉树的基本操作二叉树的遍历二叉树的基本操作二叉树的层序遍历层序遍历判断一棵树是不是完全二叉树树型结构-概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:有一个特殊的节点,称为根节点,根节点没有前驱节点除根节点外原创 2021-10-19 09:18:22 · 236 阅读 · 0 评论 -
【数据结构】栈和队列常考面试题【详解篇4】
文章目录栈和队列常考面试题面试题1:有效的括号(括号匹配问题)面试题2:用队列实现栈面试题3:用栈实现队列面试题4:实现一个最小栈面试题5:设计循环队列栈和队列常考面试题面试题1:有效的括号(括号匹配问题)LeetCode-20有效的括号解题思路分析如图:代码示例1:package java2021_1004;import java.util.Stack;/** * Description:栈和队列面试题1:有效的括号(括号匹配问题) */public class Stack原创 2021-10-15 21:58:32 · 196 阅读 · 0 评论 -
【数据结构】栈和队列【详解篇3】
文章目录栈(Stack)概念栈的实现队列(Queue)概念队列的实现循环队列双端队列栈(Stack)栈和队列也是基于List来实现的,但是它的限制比List更严格,换句话说它提供的操作更少或者List比栈和队列要更灵活。对于栈(Stack)来说,它只支持3个核心操作:入栈、出栈、取栈顶元素,因为它具有的这些操作,所以他有一个特点叫做后进先出。对于队列(Queue)来说,它也支持3个核心操作:入队列、出队列、取队首元素,因为它具有的这些操作,所以他有一个特点叫做先进先出(类似于食堂排队,谁先来谁先打原创 2021-10-15 21:52:05 · 102 阅读 · 0 评论 -
练习:扑克牌+杨辉三角
文章目录扑克牌杨辉三角扑克牌根据List的基本用法写一个扑克牌的代码package java2021_1002;import java.util.ArrayList;import java.util.Collections;import java.util.List;/** * Created by Sun * Description: * User:Administrator * Date:2021-10-03 * Time:21:32 *///创建一个类表示一张扑克牌的情原创 2021-10-10 18:56:25 · 108 阅读 · 0 评论 -
【数据结构】List相关知识的学习【详解篇2】
文章目录List泛型(Generic)的基本介绍泛型的使用泛型总结包装类(Wrapper Class)基本数据类型和包装类直接的对应关系包装类的使用:装箱(boxing)和拆箱(unboxing)List的使用List(线性表)的常见方法ArrayList(顺序表)的常见方法LinkedList(链表)的常见方法练习题练习题1练习题2练习题3List可以把List理解成“线性表”,也就是有前后顺序关系的一种数据结构;线性表可分为两种:一个是顺序表ArrayList/Vetor,一个是链表LinkedL原创 2021-10-10 16:07:00 · 218 阅读 · 0 评论 -
【数据结构】集合框架及背后的数据结构【详解篇1】
【前言】Java语法的系列学习已经结束了,现在开始数据结构的学习,这里学习的数据结构是基于Java的数据结构,下图是本次数据结构的学习内容大纲,仅供参考。有计划,有目标,才有方向;不放弃,不懈怠,才有结果。文章目录集合框架及背后的数据结构简单介绍Java 集合框架的优点及作用为什么会有这么多的数据及结构?笔试及面试题接口interfaces基本关系说明Collection 接口说明Collection常用方法说明Map常用方法说明实现Classes注意重点内容【提示】:主要还是看代码示例:细节知识点都原创 2021-10-09 16:15:16 · 178 阅读 · 0 评论 -
【Java练习】图书管理系统【详解篇15+完整代码】
文章目录要求介绍核心需求类的设计1、创建图书相关的类2、创建操作相关的类实现提供的接口,完成每一个操作AddOperation的实现BorrowOperation的实现DelOperation的实现DisplayOperation的实现ExitOperation的实现FindOperation的实现IOperation的实现ReturnOperation的实现3、创建用户相关的类4、一个程序的主函数(TestMain)要求介绍利用前面所学知识:使用类和对象、继承、封装、多态、抽象类、接口、顺序表进行一个原创 2021-10-03 08:39:10 · 1838 阅读 · 0 评论 -
【Java学习及数据结构初识】顺序表和链表【详解篇10】
文章目录一、线性表二、顺序表概念及结构接口实现顺序表接口的实现代码顺序表接口的测试代码测试打印结果三、链表什么是链表?带头结点的单向非循环链表带头节点的单向循环链表不带头节点的单向非循环列表如何产生一个节点?△头插法addFirst方法△尾插法addLast方法△任意位置插入addIndex方法查找是否包含关键字key是否在单链表当中 contains方法△删除第一次出现关键字为key的节点 remove方法△删除所有值为key的节点removeAllKey方法得到单链表的长度 size方法打印单链表dis原创 2021-09-02 21:57:09 · 295 阅读 · 3 评论 -
【java学习及数据结构初识】 时间复杂度和空间复杂度的学习【详解篇9】
文章目录一.算法效率二.时间复杂度大O的渐进表示法实例1:请计算一下func1基本操作执行了多少次?常见时间复杂度计算举例实例2:计算func2的时间复杂度?实例3:计算func3的时间复杂度?实例4: 计算func4的时间复杂度?实例5: 计算bubbleSort的时间复杂度?实例6:计算binarySearch的时间复杂度?实例7:计算阶乘递归factorial的时间复杂度?实例8:计算斐波那契递归fibonacci的时间复杂度?三.空间复杂度实例1:计算bubbleSort的空间复杂度?实例2:计算f原创 2021-08-26 01:14:41 · 214 阅读 · 1 评论 -
【Java学习】面向对象编程(二)【详解篇14】
文章目录抽象类什么是抽象类?抽象类需要注意的点抽象类存在的作用是什么?接口什么是接口?实现接口的八大注意事项实现多个接口接口使用实例Clonable接口和深拷贝Cloneable接口抽象类什么是抽象类?普通类代码示例: class Shape {//此时这个Shape类里面的方法没有具体的实现 public void draw(){//如果一个方法没有具体的实现,那么这个方法就可以是一个抽象方法。 } }1.抽象方法:一个方法如果被abstract修饰,那么这个原创 2021-09-23 21:25:58 · 370 阅读 · 0 评论 -
【java学习】面向对象编程(一)【详解篇13】
文章目录包什么是包?如何创建包?创建包的注意事项常见的系统包包的访问权限控制继承继承的背景protected 关键字继承总结更复杂的继承关系final 关键字final关键字可以修饰常量final关键字可以修饰类final关键字也可以修饰方法组合多态向上转型发生向上转型的时机(形式)动态绑定方法重写理解多态向下转型super关键字在构造器(方法)中调用重写的方法(一个坑)多态总结【前言】本节学习的是面向对象编程,因内容较多所以分两部分来写,这一部分主要是对包、继承、组合和多态的学习。如发现错误,烦请指正!原创 2021-09-14 00:16:59 · 93 阅读 · 0 评论 -
十一道链表常考面试题【详解篇12】
文章目录链表常考面试题一、【Leetcode】203移出链表元素二、【Leetcode】206反转链表(链表逆置)三、【Leetcode】876 链表的中间结点四、【剑指offer】链表中倒数第k个结点五、【Leetcode】21合并两个有序链表六、【牛客网-程序面试宝典】 CM 11 链表分割七、【剑指offer】JZ56 删除链表中重复的结点八、【2016校招真题在线编程】OR36 链表的回文结构九、【Leetcode】141. 环形链表十、【Leetcode】142. 环形链表 II(求链表环的入口点原创 2021-09-11 10:26:22 · 316 阅读 · 5 评论 -
【java学习及数据结构初识】无头双向链表的实现【详解篇11】
文章目录什么是双向链表?无头双向链表的实现头插法尾插法任意位置插入,第一个数据节点为0号下标查找是否包含关键字key是否在单链表当中删除第一次出现关键字为key的节点删除所有值为key的节点得到单链表的长度打印双向链表清空链表什么是双向链表?双向链表是双向的,它也是由节点组成的,与单链表不同的是,双向链表每一个节点有三个域,分别是data域,next域,prev域,他们的位置没有严格的顺序要求,双向链表的节点也是有地址的。首先我们先看一下双向链表长什么样子,下面这个就是一个无头双向链表:n原创 2021-09-11 09:48:20 · 215 阅读 · 1 评论