摘要: 上一个博客介绍了堆结构,这种结构非常有利于查找最大/最小元素。但是其也有一个非常显著的缺点,对于其他的元素的查找非常困难。这一节将要介绍的是二叉查找树,这种结构保持了这样的特性:其父节点大于左子节点,而小于其右子节点。 另外因为放假的原因将博客停了一段时间,接下来会恢复这个系列。由于后面博主主要打算 阅读全文
posted @ 2019-02-26 15:24 dnhua 阅读(238) 评论(0) 推荐(0) 编辑
摘要: binary heap就是一种complete binary tree(完全二叉树)。也就是说,整棵binary tree除了最底层的叶节点之外,都是满的。而最底层的叶节点由左至右又不得有空隙。 以上是一个对heap的简单介绍。本文将用heap指代此种完全二叉树。那么在实际编写代码的时候怎么组织这种 阅读全文
posted @ 2019-01-05 15:35 dnhua 阅读(199) 评论(0) 推荐(0) 编辑
摘要: C语言的申明总是令人头大,对于这块内容也一直让我头疼。希望通过这篇博客能够稍微梳理一下。材料和例子来源于《C专家编程》 阅读全文
posted @ 2018-12-16 16:11 dnhua 阅读(402) 评论(0) 推荐(0) 编辑
摘要: vector是单向开口的连续线性空间,deque则是一种双向开口的连续线性空间。所谓双向开口,意思是可以在头尾两端分别做元素的插入和删除操作。stl中deque与vector最大的差异,一在于deque允许常数时间对头端进行元素的插入操作;二是其由分段连续空间组合而成。 这部分内容的原理讲解起来并不 阅读全文
posted @ 2018-12-13 16:02 dnhua 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 今天主要给大家介绍几种数据结构,这几种数据结构在实现原理上较为类似,我习惯称之为类list的容器。具体有list、stack以及queue。 list的节点Node 首先介绍下node,也就是组成list的节点。从面向对象的角度来说节点也是就一个类,list里面包含了node对象的实例,以及操作/管 阅读全文
posted @ 2018-12-12 17:40 dnhua 阅读(1968) 评论(0) 推荐(1) 编辑
摘要: 返回c语言中的局部变量 先看一段代码猜猜,打印值: c include using namespace std; char func(); int main() { char buf = func(); cout include using namespace std; string func1() 阅读全文
posted @ 2018-12-09 17:17 dnhua 阅读(1507) 评论(0) 推荐(0) 编辑
摘要: switch语句的简单介绍 一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。 这玩意儿其实就是为了代替多种情况下if... else if...的这种嵌套。看上去很简单对不对,但是新手总会在这里遇到麻烦: 阅读全文
posted @ 2018-12-09 16:03 dnhua 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 所谓的符号重载就是在不同的上下文环境里有不同的意义。甚至有些关键字也被重载而具有好几种意义,这也是C语言的作用域规则对程序员不那么清晰的主要原因。 本章内容摘自《c专家编程》P37。 大家可以去我的 "csdn博客" 查看原文哦。 "我的GitHub" 阅读全文
posted @ 2018-12-09 15:15 dnhua 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 这里主要介绍ANSI C的特性:当执行算术运算时,操作数的类型如果不同,就会发生转换。数据类型一般朝着精度更高、长度更长的方向转换,整型数如果转换为signed不会丢失信息,就转换为signed,否则转换为unsigned。 一、算术转换(K&R C) 首先: 任何类型为char或short的操作数 阅读全文
posted @ 2018-12-08 17:34 dnhua 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 声明:虽然本系列博客与具体的编程语言无关。但是本文作者对c++相对比较熟悉,其次是java,所以难免会有视角上的偏差。举例也大多是和这两门语言相关。 "上一篇博客" 概念性的介绍了vector,我们有了大致的印象:vector不过就是看上去可以自增长的数组么。这篇博客将稍微介绍下STL与se中的ve 阅读全文
posted @ 2018-12-08 16:37 dnhua 阅读(691) 评论(0) 推荐(0) 编辑