恋上数据结构(第一季)
文章平均质量分 90
tttxxl
培训机构出身,自学路上。
展开
-
08-队列(Queue)
目录1.队列特点2.队列的接口涉及3.Java的 java.util.Queue4.双端队列5.Java的 java.util.Deque 1.队列特点 队列是一种特殊的线性表,只能从头尾两端进行操作 队尾(rear):只能从队尾添加元素,一般叫做enQueue,入队 对头(front):只能从对头移除元素,一般叫做deQueue,出队 先进先出的原则:First In First Out, FIFO 2.队列的接口涉及 队列的内部实现是否可以直接利用以前学过的数据结构呢? 推荐使用双向链表,因原创 2021-11-21 23:28:14 · 288 阅读 · 0 评论 -
07-栈Stack
目录1.栈(Stack)2.栈空间3.栈的接口设计4.实现:4.1.直接继承ArrayList,复用其中的一些方法4.2.将ArrayList作为Stack的一个私有属性5.Java官方提供的栈:java.util.Stack 1.栈(Stack) 栈是一种特殊的线性表,只能在一端进行操作。 往栈中添加元素的操作,一般叫做push,入栈。 从栈中移除元素的操作,一般叫做pop,出栈(只能移除栈顶元素,也叫做弹出栈顶元素)。 后进先出的原则:Last In First Out, LIFO 2.栈空间原创 2021-11-20 00:17:14 · 524 阅读 · 0 评论 -
06-循环链表
目录1.单向循环链表2.1要改动的方法2.双向循环链表 1.单向循环链表 单向循环链表:最后一个节点的next会指向头结点。 在原来的单向链表的基础上,我们实现一下单向循环链表。 2.1要改动的方法 1.add()方法: 插入头结点时,要维护循环指针 还要考虑只有1个节点时的特殊情况:自己指向自己。当size=0时,向index=0处插入。要找到插入位置的前一个节点node(index-1);,但是插入位置是index=0,那么就没有前一个节点,要做特殊处理。 代码修改:注意node()获取节点,一原创 2021-03-28 23:21:57 · 241 阅读 · 1 评论 -
05-双向链表
目录1.双向链表1.1双向链表的设计2.实现双向链表2.1.属性和构造2.2.node(int index)2.3.clear()2.4.add()方法2.5.remove()方法2.6.toString()方法改进3.双向链表小结3.1.双向链表VS单向链表3.2.双向链表VS动态数组小结 1.双向链表 我们之前学习的链表,也叫做单向链表,它有一些缺点: 无论访问哪个节点,即使是最后一个节点,也永远都是从头结点向后查找访问。 使用双向链表可以提升链表的综合性能。 1.1双向链表的设计 1.双向链表除了原创 2021-03-26 17:12:29 · 282 阅读 · 0 评论 -
04-虚拟头结点,数组和链表的复杂度分析,动态缩容
虚拟头结点,数组和链表的复杂度分析,动态缩容原创 2021-03-26 11:00:42 · 315 阅读 · 0 评论 -
03-链表(Linked List)
目录1.动态数组的缺点2.链表2.1.链表的设计2.2.链表的接口设计2.2.链表的接口(部分)实现2.3.抽取公共部分:继承关系设计 1.动态数组的缺点 1.动态数组有个明显的缺点:在插入时,如果发现要扩容,那么一次会扩容成原来的1.5倍。但是只是插入1个元素,很可能扩容出来的空间很大一部分根本用不上,所以可能会造成内存空间的大量浪费。 2.那么能否用到多少就申请多少内存空间呢? 链表可以做到这一点 2.链表 链表是一种链式存储的线性表,所有元素的内存地址不一定是连续的。 2.1.链表的设计 需要原创 2021-03-24 17:18:21 · 355 阅读 · 0 评论 -
02-动态数组ArrayList实现
动态数组ArrayList的实现原创 2021-03-23 17:41:46 · 343 阅读 · 0 评论 -
01-算法的复杂度(斐波那契复杂度分析)
目录1.复杂度1.什么是算法?2.如何评判一个算法的好坏?3.大O表示法(Big O)1.对数阶的细节2.常见的复杂度3.多个数据规模的情况2.LeetCode刷题指南3.斐波那契数列复杂度分析1.斐波那契数列-递归2.斐波那契数列-循环3.fib方法的时间复杂度分析4.斐波那契的线性代数解法-特征方程4.算法的优化方向5.后续 1.复杂度 1.什么是算法? 2.如何评判一个算法的好坏? 3.大O表示法(Big O) 1.对数阶的细节 2.常见的复杂度 3.多个数据规模的情况 2.LeetCode刷题指南原创 2021-03-15 22:54:06 · 896 阅读 · 0 评论