
数据结构
文章平均质量分 79
Owen_Xp
这个作者很懒,什么都没留下…
展开
-
链表面试题——带图解(续)
接上篇博客还有5道,赶紧点进去练练手吧~6. 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 。OJ链接 public class Partition { public ListNode partition(ListNode pHead, int x) { // write code here if(pHead == null){ return null; } .原创 2022-03-22 14:45:03 · 148 阅读 · 6 评论 -
链表面试题——带图解
1. 删除链表中等于给定值 val 的所有节点。OJ链接class Solution { public ListNode removeElements(ListNode head, int val) { if(head == null){ return null; } ListNode cur = head.next; ListNode prev = head; while (c.原创 2022-03-21 01:34:24 · 134 阅读 · 1 评论 -
ArrayList顺序表的模拟实现
目录ArrayList构造ArrayList动态扩容机制ArrayList的主要属性ArrayList的构造器ArrayList的动态扩容ArrayList常见操作ArrayList模拟实现1、先写一个MyArrayList类,并写出它的构造方法2、add(int data)新增元素3、MyToString()打印顺序表4、add(int pos, int data)在 pos 位置新增元素5、contains(int toFind)判定顺序表是...原创 2022-03-20 18:27:06 · 189 阅读 · 1 评论 -
Iterable、Collection、List 的常见方法签名以及含义
Iterable、Collection、List 的常见方法签名以及含义原创 2022-03-10 14:17:47 · 232 阅读 · 0 评论 -
哈希表(带图解)
哈希表常见的搜索方式:1、顺序搜索——O(N)2、二分搜索——O(log₂N)3、搜索树结构中的查找:二叉树搜索——O(N),AVL——O(log₂N),红黑树——O(log₂N)以上都需要比较,那有没有不需要比较就能查找的方法呢?概念顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(log₂N),搜索的效率取决于搜索过程中元素的比较次数。理想的搜索方法:可以不经过任何比较原创 2021-11-28 15:16:56 · 5851 阅读 · 0 评论 -
数据结构——堆(带图详解)
堆堆的概念前面介绍的优先级队列在JDK1.8中其底层使用了堆的数据结构,而堆实际就是在完全二叉树的基础之上进行了一些元素的调整。如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中,并满足:Ki <= K2i+1 且 Ki<= K2i+2 (Ki >= K2i+1 且 Ki >=K2i+2) i = 0,1,2…,则称为小堆(或大堆)。(即双亲比孩子的数值小(大)——小(大)堆)将根节点最大的.原创 2021-11-12 18:13:30 · 17511 阅读 · 8 评论 -
优先级队列
目录优先级队列(PriorityQueue)概念优先级队列的特性使用优先级队列时需注意:优先级队列的构造优先级队列的操作实现优先级队列(PriorityQueue)概念首先,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队 列时,可能需要优先级高的元素先出队列,该中场景下,使用队列显然不合适,比如:在手机上玩游戏的时候,如果有来电,那么系统应该优先处理打进来的电话。 在这种情况下,我们的数据结构应该提供两个最基本的操作,...原创 2021-11-12 13:29:24 · 315 阅读 · 0 评论 -
数据结构:二叉树(带图详解)
目录树的概念和结构树的概念树的表示形式二叉树二叉树的概念两种特殊的二叉树1、满二叉树2、完全二叉树二叉树的性质二叉树的存储二叉树的遍历1. 前中后序遍历还原二叉树2、层序遍历二叉树的基本操作树的概念和结构树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:有一个特殊的结点,称为根结点...原创 2021-11-01 19:58:37 · 14579 阅读 · 3 评论 -
Java数据结构中的栈和队列(带图解)
目录栈(stack)什么是栈?栈的使用栈的模拟实现队列(Queue)什么是队列?队列的使用队列的分类一、顺序队列什么是顺序队列?顺序队列的实现方式循环队列什么是循环队列?为什么会有循环队列?循环队列的实现循环队列如何进行判断是否存满?或者为空呢?二、链式队列什么是链式队列?链式队列的实现双端队列什么是双端队列?双端队列的实现栈(stack)什么是栈?栈(stack)又名堆栈,它是一种运算受限的线性表。...原创 2021-10-31 06:00:00 · 5203 阅读 · 0 评论