![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 71
寒山道杳
合抱之木,生於毫末;九層之台,起於累土;千里之行,始於足下。
展开
-
数据结构02——栈和队列
“栈”是我们常常听到的一个术语,那么什么是栈呢,很简单,栈(Stack)是一个后进先出(Last in first out,简称:LIFO)的线性表,它只能从一端添加元素,也只能从一端去除元素,这一端就称为:栈顶。在计算机的世界中,栈是有着一些不可思议的作用的,例如你在编辑器中输入你想要输入的文字是,当你发现输入有误时,你会进行撤回的操作。而这就是无处不在的Undo操作。还有你安装软件时的next...原创 2018-07-25 08:31:01 · 178 阅读 · 0 评论 -
数据结构08——Trie
一、什么是Trie?Trie树,一般被称为字典树、前缀树等等,Trie是一种多叉树,这个和二分搜索树、堆、线段树这些数据结构不一样,因为这些都是二叉树。,Trie树除了是一种多叉树,它是一种哈希树的变种。因此Trie典型作用,是应用于统计和排序大量的字符串,所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie查询每个条目的时间复杂...原创 2018-08-21 08:46:29 · 198 阅读 · 0 评论 -
数据结构07——线段树
一.线段树的定义首先,线段树它是一棵二叉树,但它又不是一个完全二叉树,却是一个平衡二叉树。它和二叉树一样,有一个一个的节点,但是对于线段树而言,它的每一个节点表示的都是一个区间类相应的信息。以求和为例,线段树每个节点,存储的就是一段区间的数字和。根节点存储的就是整个区间的相应的数字和,之后从根节点将这个区间平均分成两段,例如A[0...7],那么它的左孩子就是A[0...3],右孩子就是...原创 2018-08-19 09:15:51 · 178 阅读 · 0 评论 -
数据结构06——优先队列和堆
开头语因为这些日子的懒惰,所以一直没有更新博客,实在在很抱歉。这里我将继续和大家分享数据结构的知识,希望大家可以喜欢。本篇文章我将会分享关于优先队列和堆的相关知识,那么我们来说下,关于这两种数据结构的各自相关的文字定义。首先,先说下什么是优先队列,其实在前面数据结构02——栈和队列这篇文章中,我们已经介绍过了关于队列的知识,之前说过队列就像我们日常生活中的排队,先进的先出,但是对于优先队列...原创 2018-08-18 19:31:09 · 212 阅读 · 0 评论 -
数据结构05——集合与映射
一、集合和映射的概念对于集合,我们只要学过编程的人一般都是了解的,在编程中,我们常常需要集中存放多个数据。从传统意义上来讲,数组是我们的一个很好的选择,但前提是我们必须事先已经明确知道我们将要保存的对象的数量。一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据(在编译时无法确定具体的数量),java的集合类就是一个很好的设计方案了。这是...原创 2018-08-05 01:46:12 · 857 阅读 · 0 评论 -
数据结构01——“小小数组”,不可小觑
数组的概念很简单,就是把数据码成一排进行存放。在数组中其重要的内容就是“索引”,对于数组的这个“索引”是可以有语意,也可以是没有语意的,而数组最大的优点,是在于其能快速的查询,例如我们调用arra[2],就能得到这个下标‘2’位置元素的值。因此数组最好应用于“索引”有语意的情况下,可并非所有有语意的索引都适用于数组,例如身份证号码,当我们索引一个人的身份信息时,这个身份证号肯定是最好的一个索引方式...原创 2018-07-24 09:59:11 · 281 阅读 · 1 评论 -
数据结构04——二叉树
一、开头语说到二叉树,我们是否应该考虑一下,为什么要使用树?那是因为树结构是集有序数组和链表的优点于一身,在树中查找数据的速度和在有序数组中查找的速度是一样快的,并且插入数据和删除数据的速度和链表的也是一样的,说的直白一点,就是两个字:高效。在本篇文章,我们主要讲的是一种特殊的树——二叉搜索树(Binary-Search-Tree),简称:BST。 二、设计树结构的具体实现和实现...原创 2018-07-29 09:54:06 · 422 阅读 · 1 评论 -
数据结构03——链表
一.开头语对于链表是我们一个非常熟悉的数据结构,它的定义:链表是一种递归的数据结构,它或者为空(null),或者指向一个节点(node)的引用,该节点含有一个泛型的元素和一个指向另一条链表的引用。当然这只是一种比较教科书式的定义。对于链表的数据是存储在“节点”中的,它的优点是真正的动态,不需要处理固定容量的问题,但它的缺点是丧失了随机访问的功能。因此它与数组相比,其优缺点就非常明显了。在...原创 2018-07-26 08:43:20 · 512 阅读 · 0 评论 -
数据结构09—— 并查集(Union-Find)
一、关于并查集并查集(Union-Find)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。并查集(Union-Find)从名字可以看出,主要它涉及两种基本操作:合并和查找。这说明,初始时并查集中的元素是不相交的,经过一系列的基本操作(Union),最终合并成一个大的集合。 二、并查集的设计和基本实现 1.并查集接口的设计pu...原创 2018-10-15 10:26:40 · 300 阅读 · 0 评论