随笔分类 - 数据结构
Java实现数据结构,《算法与数据结构体系课》-liuyubobobo 课程笔记
摘要:《玩转数据结构》-liuyubobobo 课程笔记 不是重点,一般竞赛才考察,面试一般不考察,只做了解即可 线段树(区间树) 每一个节点存储一个线段或一个区间响应的信息 大多数情况下,区间本身是固定的 为什么要使用区间树? 对于给定区间 更新:更新区间中一个元素或者一个区间的值O(logn) ;数组
阅读全文
摘要:《玩转数据结构》-liuyubobobo 课程笔记 树这种数据结构是计算机科学领域较为重要的数据结构,因为其扩展性强,除了二分搜索树,二叉树之外,还有许多种结构,从这一章开始,我们来学习其他四种新的树形结构,体会数据结构的灵活性 在介绍树形结构堆之前,我们来了解一下更加高层的概念:优先队列 优先队列
阅读全文
摘要:《玩转数据结构》-liuyubobobo 课程笔记 我们之前学习了二分搜索树,现在我们来学习两种高层的数据结构:集合和映射 什么叫高层数据结构呢? 就是一种定义好数据结构之后,放入应用中就能直接使用。但是其底层实现,可以是多种多样的数据结构,比如我们之前学习的栈和队列。既可以是动态数组,又可以是链表
阅读全文
摘要:《玩转数据结构》-liuyubobobo 课程笔记 树结构 线性结构:将元素排成一排进行存储 树形结构:从根出发,长出枝杈,长出的枝杈中,还会有更多的枝杈,直到最后的树叶。 为什么会有树结构呢? 树结构本身是一种天然地组织结构:树结构其实并不抽象,我们生活中经常会使用到树结构,比如电脑中的文件夹,部
阅读全文
摘要:《玩转数据结构》-liuyubobobo 课程笔记 链表和递归 上一章,我们从底层实现了一个单链表的数据结构。并且根据这个链表,实现了栈和队列两种数据结构。 但是提到链表,我们其实还有一个非常重要的话题:递归。 链表天然地拥有递归的性质,不过链表是线性的,太过简单,我们使用循环的方式也可以对其进行遍
阅读全文
摘要:《玩转数据结构》-liuyubobobo 课程笔记 链表 Linked List 之前我们介绍了三种数据结构 动态数组 栈 队列 其底层都是依托静态数组,靠resize解决固定容量问题 而链表则是一种真正的动态数据结构,是一种最简单的动态数据结构,能够辅助组成其他数据结构 学习链表,能够更深入的理解
阅读全文
摘要:《玩转数据结构》-liuyubobobo 课程笔记 栈 Stack 栈是一种线性结构 相比数组,栈对应的操作是数组的子集 只能从一端添加元素(入栈),也只能从另一端取出元素(出栈),这一端被称为栈顶 LIFP(Last In First Out)后进先出 栈的应用 Undo(撤销) 输入沉迷、学习、
阅读全文
摘要:《玩转数据结构》-liuyubobobo 课程笔记 数组 把数组码成一排进行存放 数组最好用于索引有语意的情况。 数组最大的优点:快速查询 二次封装自己的数组(动态数组) 我们需要实现: 实现数组的基本操作,包括增、删、查、改等方法; 使用泛型,使得数组可以放置“任何”数据类型; 实现动态数组,使数
阅读全文

浙公网安备 33010602011771号