Kun's Blog


一个用于记录点滴的博客

红黑树

标准模板库中的二叉搜索树

本文继续了二叉搜索树系列,重点学习和总结了红黑树。首先会给出红黑树的定义,然后根据红黑树的性质,解析其在插入和删除操作中如何做到自平衡。最后,也同样提供C++代码实现以供参考。在介绍过程中,也会给出很多值得推敲和思考的点,同时也会不断的与之前的 AVL 树进行对比,从而加深对红黑树的印象...

AVL树

一种平衡二叉搜索树

本文主要对AVL树的进行学习总结,并使用C++代码来实现和测试。首先,介绍了AVL树的基本概念和性质。之后,采用图示和代码相结合的方式,重点讲解AVL树如何通过四种旋转方式来保持树的平衡。此外,通过与一般的平衡二叉搜索树进行对比,给出了正常插入,查找和删除三种操作在实现上应当增加的内容。...

二叉搜索树

继续来看特殊的二叉树

本文主要总结了二叉搜索树的基本概念和性质,并使用C++实现了具有插入,查找和删除功能的二叉搜索树。其中,在节点结构上考虑了键值两个属性,类型上采用模板编程。基于二叉搜索树的特性,在三种基本操作的实现上,使用了的二分策略和递归遍历的方式。特别的,在删除操作上,还利用了替换叶子节点到删除节点...

二叉堆

一种特殊的完全二叉树

本文首先介绍了二叉堆的定义,利用完全二叉树的性质,考虑用数组的形式表达二叉树。之后,着重讲解了二叉堆中的上浮和下沉操作来实现堆有序,使用C++来实现基础算法。然后,根据基本算法的不足,分别在交换次数,封装函数和构造堆的方式三个方面,对代码进行了提升。最后给出了测试的结果与构造堆的时间复杂...

动态数组的扩容分析

就从这个分析开始总结更多技术知识

预热问题 问题1: 对于动态数组(C++ Vector 和 Java Array List),数组大小是$n$,这时候从最后插入数据,时间复杂度将会是多少? 直接给出答案:正常插入一个数据,是 $O(1)$, 但最会坏的情况是 $O(n)$ 。 原因是因为当容量超出数组的限制, 那么会新建...

Ubuntu 16.04 配置

从新记录技术博客的开始

前言 很久没有整理自己博客了,之前都是一直在学习,总结也相对分散,要么是代码,要么就记在了其他地方。这次用了4年的笔记本系统出了问题,只好重做系统,之前弄了很久的配置也要重新来过,刚好趁这个机会,把所有添加的配置都记录下来。以此来就作为重写博客的开始吧。 Ubuntu主题 参考之前博客:...

回望芬兰

值得怀念的记忆

躺在家里的床上,仿佛刚刚做过了一个漫长的梦,但闭上眼却有那么清晰的记住梦中的片段。 行前准备 知道这个阿尔托交换项目还是偶然在论坛看到学校国际处有交换生的项目,便在学院报上了名。等待到了国际处的通知,便按照要求跑表盖章,学校就算可以同意交换了。再之后,通过对方学校也就是阿尔托大学的...

SUMO教程

城市车辆中的真实仿真

SUMO(Simulation of Urban MObility) ,是一款模拟真实道路交通的仿真软件,可以通过接口为NS3实现更为真实的车辆移动模型。 SUMO基本构成 SUMO简单可以由四个部分所构成: Nodes,节点 Edges,边 Routes,车属性,...