数据结构入门
mrdonkey3
不要畏惧新鲜的事物,重视学习的过程,绝不能想着一劳永逸啊。
展开
-
玩转数据结构——第一章:数组
内容大纲:使用Java中的数组 二次封装属于我们自己的数组 向数组中添加元素 数组中查询元素和修改元素 包含,搜索,删除功能 使用泛型 动态数组 简单的时间复杂度分析 均摊复杂度和防止复杂度振荡一、java中的数组把数据码成一排进行存放java中一个简单的数组使用public class Main { public static void main(...原创 2018-09-24 22:51:04 · 383 阅读 · 0 评论 -
玩转数据结构——第四章:链表和递归
内容概要:Leetcode中和链表相关的问题 测试自己的Leetcode链表代码 递归继承与递归的宏观语意 链表的天然递归结构性质 递归运行机制:递归的微观解读 递归算法的调试 更多和链表相关的问题1-Leetcode中和链表相关的问题题目:删除链表中等于给定的val的所有元素。示例:给定:1—>2—>6—>3—>4—>5—>6...原创 2018-09-28 10:36:27 · 308 阅读 · 0 评论 -
LeetCode中的优先队列和线段树相关的问题
一、优先队列的经典问题:在 100 0000个元素中选出前100名?在N个元素总选出前M个元素(N>>M)如果使用排序的时间复杂度O(NlogN)使用优先队列——>O(NlogM)使用一个优先队列,维护当前看到的前M个元素。Leetcode347前K个高频元素给定一个非空的整数数组,返回其中出现频率前 k 高的元素。例如,给定数组 [1,1,1...原创 2018-10-05 11:30:09 · 921 阅读 · 0 评论 -
玩转数据结构——第八章:线段树(区间树)
线段树(Segment Tree)内容概览:一、什么是线段树?二、线段树的基础表示三、创建线段树四、线段树中的区间查询五、LeetCode上线段树相关的问题六、线段树的更新操作七、线段树更多相关的问题为什么要使用区间树?对于给定区间 更新:更新区间中一个元素或者一个区间的值,数组的实现是级别 查询:查询一个区间[i,j]的最大值,最小值,或者区间数字和,...原创 2018-10-05 13:16:30 · 351 阅读 · 0 评论 -
玩转数据结构——第七章:优先队列和堆
内容概要:什么是优先队列? 堆的基础结构 向堆中添加元素Sift Up 从堆中取出元素和Sift Down Heapify和Replace 基于堆的优先队列 LeetCode上优先队列相关的问题 java中的PriorityQueue 和堆相关的更多话题和广义队列一、什么是优先队列?不同树的数据结构四种例子:堆 线段树 字典树 并查集什么是优先队列?普通队...原创 2018-10-03 15:51:02 · 435 阅读 · 1 评论 -
LeetCode中的集合和映射相关的问题
LeetCode中的集合和映射相关的问题804.唯一的摩斯密码词国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" 对应 "-...", "c" 对应 "-.-.", 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-...",&qu原创 2018-10-02 21:45:23 · 232 阅读 · 0 评论 -
玩转数据结构——第六章:集合和映射
集合(Set)什么是集合?集合是承载元素的容器;特点:每个元素只能存在一次优点:去重二分搜索树的添加操作add:不能盛放重复元素 是非常好的实现“集合”的底层数据结构/** * 集合的接口 */public interface Set<E> { void add(E e);//添加 <——<不能添加重复元素 void ...原创 2018-10-02 17:30:19 · 964 阅读 · 0 评论 -
Java实现数组去除重复数据的方法详解(转)
转:https://www.jb51.net/article/123098.htm本文实例讲述了Java实现数组去除重复数据的方法。分享给大家供大家参考,具体如下:前一段时间被面试问到:如果一个数组中有重复元素,用什么方法可以去重?一时间会想到用一种方法,但是后来查阅资料后发现,有好多方法可以实现,现在就总结一下,比较简单的几种。一.用List集合实现int[] str = {5...转载 2018-10-02 09:07:30 · 10603 阅读 · 0 评论 -
玩转数据结构——第三章:最基础的动态数据结构:链表
内容概括:3-1.什么是链表 3-2.在链表中添加元素 3-3.使用链表的虚拟头结点 3-4.链表的遍历,查询和修改 3-5.从链表中删除元素 3-6.使用链表实现栈 3-7.带有尾指针的链表:使用链表实现队列3-1.什么是链表链表:真正的动态数据结构 最简单的动态数据结构 更深入的理解引用(或者指针) 更深入的理解递归 辅助组成其他数据结构链表Linked ...原创 2018-09-26 10:51:34 · 316 阅读 · 0 评论 -
玩转数据结构——第二章:栈和队列
内容概览:栈和栈的应用:撤销操作和系统栈 栈的基本实现 栈的另外一个应用:括号匹配 关于Leetcode的更多说明 数组队列 循环队列 循环队列的实现 数组队列和循环队列的比较2-1.栈(Stack)栈也是一种线性结构 相比数组,栈对应的操作是数组的子集 只能从一端添加元素,也只能从一端取出元素 这一端称为栈顶 栈是一种先进后出的数据结构 Last In Firs...原创 2018-09-25 17:46:14 · 261 阅读 · 0 评论 -
玩转数据结构——第五章:二分搜索树
内容概要:为什么要研究树结构 二分搜索树基础 向二分搜索树中添加元素 改进添加操作:深入理解递归终止条件 二分搜索树的查询操作 二手搜索树的前序遍历 二分搜索树的中序遍历和后序遍历 深入理解二分搜索树的前中后遍历(深度遍历) 二分搜索树是的前序遍历的非递归实现 二分搜索树的层序遍历(广度遍历) 删除二分搜索树的最大元素和最小元素 删除二分搜索数的任意元素1-为什么要研究...原创 2018-09-28 23:21:00 · 316 阅读 · 0 评论