摘要: 一.线段树的定义 首先,线段树它是一棵二叉树,但它又不是一个完全二叉树,却是一个平衡二叉树。它和二叉树一样,有一个一个的节点,但是对于线段树而言,它的每一个节点表示的都是一个区间类相应的信息。以求和为例,线段树每个节点,存储的就是一段区间的数字和。根节点存储的就是整个区间的相应的数字和,之后从根节点 阅读全文
posted @ 2018-08-19 09:16 寒山道杳 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 开头语 因为这些日子的懒惰,所以一直没有更新博客,实在在很抱歉。这里我将继续和大家分享数据结构的知识,希望大家可以喜欢。本篇文章我将会分享关于优先队列和堆的相关知识,那么我们来说下,关于这两种数据结构的各自相关的文字定义。 首先,先说下什么是优先队列,其实在前面数据结构02——栈和队列这篇文章中,我 阅读全文
posted @ 2018-08-18 19:31 寒山道杳 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 一、集合和映射的概念 对于集合,我们只要学过编程的人一般都是了解的,在编程中,我们常常需要集中存放多个数据。从传统意义上来讲,数组是我们的一个很好的选择,但前提是我们必须事先已经明确知道我们将要保存的对象的数量。一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以 阅读全文
posted @ 2018-08-05 01:46 寒山道杳 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 一、开头语 说到二叉树,我们是否应该考虑一下,为什么要使用树?那是因为树结构是集有序数组和链表的优点于一身,在树中查找数据的速度和在有序数组中查找的速度是一样快的,并且插入数据和删除数据的速度和链表的也是一样的,说的直白一点,就是两个字:高效。在本篇文章,我们主要讲的是一种特殊的树——二叉搜索树(B 阅读全文
posted @ 2018-07-29 09:54 寒山道杳 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 一.开头语 对于链表是我们一个非常熟悉的数据结构,它的定义:链表是一种递归的数据结构,它或者为空(null),或者指向一个节点(node)的引用,该节点含有一个泛型的元素和一个指向另一条链表的引用。当然这只是一种比较教科书式的定义。对于链表的数据是存储在“节点”中的,它的优点是真正的动态,不需要处理 阅读全文
posted @ 2018-07-26 08:43 寒山道杳 阅读(141) 评论(0) 推荐(0) 编辑
摘要: “栈”是我们常常听到的一个术语,那么什么是栈呢,很简单,栈(Stack)是一个后进先出(Last in first out,简称:LIFO)的线性表,它只能从一端添加元素,也只能从一端去除元素,这一端就称为:栈顶。在计算机的世界中,栈是有着一些不可思议的作用的,例如你在编辑器中输入你想要输入的文字是 阅读全文
posted @ 2018-07-25 08:31 寒山道杳 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 数组的概念很简单,就是把数据码成一排进行存放。在数组中其重要的内容就是“索引”,对于数组的这个“索引”是可以有语意,也可以是没有语意的,而数组最大的优点,是在于其能快速的查询,例如我们调用arra[2],就能得到这个下标‘2’位置元素的值。因此数组最好应用于“索引”有语意的情况下,可并非所有有语意的 阅读全文
posted @ 2018-07-24 09:59 寒山道杳 阅读(127) 评论(0) 推荐(0) 编辑