随笔分类 -  数据结构与算法 随笔

摘要:上一个博客介绍了堆结构,这种结构非常有利于查找最大/最小元素。但是其也有一个非常显著的缺点,对于其他的元素的查找非常困难。这一节将要介绍的是二叉查找树,这种结构保持了这样的特性:其父节点大于左子节点,而小于其右子节点。 另外因为放假的原因将博客停了一段时间,接下来会恢复这个系列。由于后面博主主要打算 阅读全文
posted @ 2019-02-26 15:24 dnhua 阅读(259) 评论(0) 推荐(0)
摘要:binary heap就是一种complete binary tree(完全二叉树)。也就是说,整棵binary tree除了最底层的叶节点之外,都是满的。而最底层的叶节点由左至右又不得有空隙。 以上是一个对heap的简单介绍。本文将用heap指代此种完全二叉树。那么在实际编写代码的时候怎么组织这种 阅读全文
posted @ 2019-01-05 15:35 dnhua 阅读(232) 评论(0) 推荐(0)
摘要:vector是单向开口的连续线性空间,deque则是一种双向开口的连续线性空间。所谓双向开口,意思是可以在头尾两端分别做元素的插入和删除操作。stl中deque与vector最大的差异,一在于deque允许常数时间对头端进行元素的插入操作;二是其由分段连续空间组合而成。 这部分内容的原理讲解起来并不 阅读全文
posted @ 2018-12-13 16:02 dnhua 阅读(229) 评论(0) 推荐(0)
摘要:今天主要给大家介绍几种数据结构,这几种数据结构在实现原理上较为类似,我习惯称之为类list的容器。具体有list、stack以及queue。 list的节点Node 首先介绍下node,也就是组成list的节点。从面向对象的角度来说节点也是就一个类,list里面包含了node对象的实例,以及操作/管 阅读全文
posted @ 2018-12-12 17:40 dnhua 阅读(2042) 评论(0) 推荐(1)
摘要:声明:虽然本系列博客与具体的编程语言无关。但是本文作者对c++相对比较熟悉,其次是java,所以难免会有视角上的偏差。举例也大多是和这两门语言相关。 "上一篇博客" 概念性的介绍了vector,我们有了大致的印象:vector不过就是看上去可以自增长的数组么。这篇博客将稍微介绍下STL与se中的ve 阅读全文
posted @ 2018-12-08 16:37 dnhua 阅读(727) 评论(0) 推荐(0)
摘要:声明:虽然本系列博客与具体的编程语言无关。但是本文作者对c++相对比较熟悉,其次是java,所以难免会有视角上的偏差。举例也大多是和这两门语言相关。 Vector的出现主要是为了解决数组的静态空间的问题。所谓静态空间指的是一旦配置就不能改变。当然如果你硬要重新配置也是可以的,自己重新申请一块空间,然 阅读全文
posted @ 2018-12-08 16:03 dnhua 阅读(642) 评论(0) 推荐(0)
摘要:声明:虽然本系列博客与具体的编程语言无关。但是本文作者对c++相对比较熟悉,其次是java,所以难免会有视角上的偏差。举例也大多是和这两门语言相关。 今天先来看看有哪些常见的数据结构(C++ STL视角,其他应该也大同小异吧。哈哈,我猜的!)。所以之后的内容大多从STL出发,然后顺便对比下java中 阅读全文
posted @ 2018-12-08 15:57 dnhua 阅读(216) 评论(0) 推荐(0)