![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 96
el psy congroo
为世界上所有的美好而战
展开
-
哈希表与HashMap
虽然哈希表一直在和冲突做斗争,但在实际使用过程中,我们认为哈希表的冲突率是不高的,冲突个数是可控的,也就是每个桶中的链表的长度是一个常数,所以,通常意义下,我们认为哈希表的插入/删除/查找时间复杂度是O(1)。开散列法又叫链地址法(开链法),首先对数据集合用散列函数计算散列地址,具有相同地址的数据归于同一子集合,每一个子集合称为一个桶,桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。那如何寻找下一个空位置呢?进行同样的计算,求得的函数值为元素的存储位置,进行元素比较,若相等,则搜索成功。原创 2024-03-06 14:08:32 · 663 阅读 · 2 评论 -
优先级队列(堆)
查看向上调整的源码知PriorityQueue是通过comparator或comparable来决定元素存放顺序的如果实现了comparator就用comparator,不然就看comparablecomparablekey是child;e是parentkey.compareTo((E) e) < 0,就不执行break,而执行交换} }} }@Override对age进行比较来建堆comparatorx是child;原创 2024-02-24 10:41:59 · 1023 阅读 · 0 评论 -
二叉树及其练习题
文章目录树概念及结构树的概念树的相关概念树的表示形式树的应用二叉树概念及结构概念两种特殊的二叉树二叉树的性质二叉树的存储二叉树的基本操作二叉树的遍历前中后序遍历递归实现二叉树的基本操作二叉树相关oj题树概念及结构树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2原创 2024-02-21 00:22:45 · 776 阅读 · 0 评论 -
Java的集合框架和泛型
Java 集合框架,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces和其实现类 classes。其主要表现为将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储store、检索retrieve、管理manipulate,即平时我们俗称的增删查改CRUD。数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。原创 2024-02-16 22:21:30 · 734 阅读 · 0 评论 -
时间和空间复杂度
算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。原创 2024-02-14 13:34:40 · 769 阅读 · 0 评论 -
环形链表的约瑟夫问题
按照牛客网题目要求编号从1开始。原创 2023-12-25 23:26:39 · 878 阅读 · 0 评论 -
栈和队列
例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。原创 2023-12-09 16:56:43 · 871 阅读 · 0 评论 -
顺序表和链表
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。快慢指针,即慢指针一次走一步,快指针一次走两步,两个指针从链表起始位置开始运行,如果链表带环则一定会在环中相遇,否则快指针走到链表的末尾。给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在大于或等于 x 的节点之前。一次,之间的距离就缩小一步,不会出现每次刚好是套圈的情况,因此:在慢指针走到一圈之前,原创 2023-12-05 20:45:36 · 958 阅读 · 0 评论