Java-数据结构
文章平均质量分 79
Java数据结构知识的学习及相关题目的分享
Hannn~
一起加油呀!
展开
-
优先级队列(堆)
堆的插入总共需要两个步骤: 先将元素放入到底层空间中(注意:空间不够时需要扩容) 将最后新插入的节点向上调整,直到满足堆的性质 2.4.2 堆的删除 注意:堆的删除一定删除的是堆顶元素。具体如下: 将堆顶元素对堆中最后一个元素交换 将堆中有效数据个数减少一个 对堆顶元素进行向下调整原创 2024-03-21 23:12:27 · 595 阅读 · 1 评论 -
数据结构-二叉树
上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。在遍历二叉树时,如果没有进行某种约定,每个人都按照自己的方式遍历,得出的结果就比较混乱,,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第。:以某结点为根的子树中任一结点都称为该结点的子孙。如上图:所有结点都是。:若一个结点含有子结点,则这个结点称为其子结点的父结点;:一个结点含有的子树的根结点称为该结点的子结点;有一个特殊的结点,称为根结点,根结点没有前驱结点;原创 2023-11-28 14:50:20 · 3273 阅读 · 36 评论 -
队列、循环队列和双端队列
只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出。接下来是队列相关操作的模拟实现,以下方法均是 MyLinkQueue类的成员方法。3. 队列中有多个元素---链表中有多个节点----将第一个节点删除。2. 队列中只有一个元素----链表中只有一个节点---直接删除。保留一个位置(浪费一个空间表示满,浪费的空间不放元素))是指允许两端都可以进行入队和出队操作的队列,接口是比较多的,栈和队列均可以使用该接口。出队列:进行删除操作的一端称为。是一个接口,使用时必须创建。原创 2023-11-03 14:59:04 · 165 阅读 · 35 评论 -
图书管理系统的实现
user包里面装入User类、NomalUser类和AdminUser类, NomalUser类(普通用户)和AdminUser类(管理员用户)分别继承User类。BookList类是用来实现存放图书的功能的,相当于书架。在这里我设置的书架上最多能存放10本书(),并且书架上已存有三国演义、西游记、红楼梦三本书。该类实现普通用户借阅图书的功能。该类实现普通用户归还图书的功能。该类实现显示图书的功能。该类实现删除图书的功能。该类实现新增图书的功能。该类实现查找图书的功能。该类实现退出程序的功能。原创 2023-10-13 21:38:41 · 285 阅读 · 11 评论 -
Java集合类ArrayList的应用-杨辉三角的前n行
本文的杨辉三角的解法有多种,像二维数组,在本文我们使用了ArrayList集合类,主要是想通过此题来练习Java集合类的使用。原创 2023-10-15 22:46:00 · 234 阅读 · 17 评论 -
栈及其栈的模拟实现和使用
一种特殊的线性表,其。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO)的原则。压栈:栈的插入操作叫做进栈压栈入栈,。出栈:栈的删除操作叫做出栈。。原创 2023-11-01 23:25:39 · 258 阅读 · 38 评论 -
环形链表 II
【代码】环形链表 II。原创 2023-10-28 22:39:49 · 336 阅读 · 27 评论 -
相交链表-力扣
注意题目所说的相交,相交节点不只是数值上的相等,而是相交以后两条链变成一条链。始终指向较短的那个链表,并且一开始,两个节点均指向链表的头节点;1、先求出两条链表的长度,然后求出长度的差值len;3、让指向较长链表的pl节点先走差值。2、定义两个节点pl、ps。始终指向较长的那个链表,原创 2023-10-25 17:39:52 · 379 阅读 · 29 评论 -
LinkedList与链表
目录1、链表 1.1 链表的概念及结构 1.2 链表的实现 2、LinkedList的模拟实现 3、LinkedList的使用 3.1 什么是LinkedList 3.2 LinkedList的使用 3.3 LinkedList的遍历 4、ArrayList和LinkedList的区别 链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。实际中链表的结构非常多样,以下常见的链表结构: 1. 单向或者双向 2. 带头或者不带头 3. 循环或者非循环 我们原创 2023-10-22 21:13:19 · 646 阅读 · 4 评论 -
链表的中间结点-力扣
给你单链表的头结点head,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。原创 2023-10-23 08:13:26 · 295 阅读 · 11 评论 -
环形链表-力扣
假设链表带环,两个指针最后都会进入环,快指针先进环,慢指针后进环。此时,两个指针每移动一次,之间的距离就缩小一步,不会出现每次刚好是套圈的情况,因此:在慢指针走到一圈之前,快指针肯定是可以追上慢指针的,即相遇。快慢指针,即慢指针一次走一步,快指针一次走两步,两个指针从链表起始位置开始运行,如果链表带环,则一定会在环中相遇,否则快指针率先走到链表的末尾。快慢指针,即慢指针一次走一步,快指针一次走两步,两个指针从链表起始位置开始运行,如果链表带环,则一定会在环中相遇。所以解决该题时,我们使用。原创 2023-10-28 10:07:49 · 324 阅读 · 29 评论 -
ArrayList与顺序表
是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列...线性表在是线性结构,也就说是连续的一条直线。但是在,线性表在物理上存储时,通常以数组和链式结构的形式存储。原创 2023-10-22 17:05:25 · 650 阅读 · 6 评论 -
链表的回文结构
对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true。原创 2023-10-24 10:22:40 · 223 阅读 · 15 评论