
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文介绍了链表数据结构及其实现方法。首先对比ArrayList的缺点引出链表优势,详细讲解了单向链表和双向链表的概念与8种分类。文章重点阐述了单向链表的实现(头插、尾插、指定位置插入、查找和删除操作)和双向链表的实现(增删操作需处理前后指针),并分析了循环链表的判环算法。最后对比了LinkedList与ArrayList的特性差异:LinkedList基于双向链表实现,适合频繁插入删除;Array

文章介绍优先级队列和堆的相关概念及应用。堆是一种完全二叉树,分为大根堆和小根堆。PriorityQueue类及其特性,探讨如何用堆解决Top K问题:找前K个最小元素用大根堆,前K个最大元素用小根堆。最后提供求前K个最小元素的Java代码实现。

二叉搜索树(BST)是一种具有特定性质的二叉树结构,其左子树节点值均小于根节点,右子树节点值均大于根节点。BST支持三种核心操作:(1)查找 (2)插入(3)删除,其中删除操作是难点,需要重点理解。所有操作的平均时间复杂度为O(logN),在最坏情况下(树退化为单支)时间复杂度为O(N)。BST的中序遍历结果是有序序列。

二叉搜索树(BST)是一种具有特定性质的二叉树结构,其左子树节点值均小于根节点,右子树节点值均大于根节点。BST支持三种核心操作:(1)查找 (2)插入(3)删除,其中删除操作是难点,需要重点理解。所有操作的平均时间复杂度为O(logN),在最坏情况下(树退化为单支)时间复杂度为O(N)。BST的中序遍历结果是有序序列。

本文介绍Java多线程中的wait()和notify()方法。两者必须配合同一锁对象使用,且wait()要先于notify()调用。文章还对比了wait()与join()、sleep()的区别,提供生活案例和代码案例分析,以及部分源码解读,适合初学者学习。









