数据结构与算法之二叉查找树
什么是二叉查找树
对一般容器的查找, 我们可以按顺序遍历, 找到符合要求的元素就返回; 对于元素是有序的容器, 可以使用二分查找等方法查找, 减少操作的时间复杂度.
容易知道, 一般查找的平均时间复杂度是O(n)
, 二分查找的平均时间复杂度是O(logn)
.
对一般容器的查找, 我们可以按顺序遍历, 找到符合要求的元素就返回; 对于元素是有序的容器, 可以使用二分查找等方法查找, 减少操作的时间复杂度.
容易知道, 一般查找的平均时间复杂度是O(n)
, 二分查找的平均时间复杂度是O(logn)
.
这里用到的是stdarg.h
这个库, 可以在C语言里面实现可变长参数.
当然C++会简单得多, C++11之后的模板原生支持可变长参数.
几个函数va_list、va_start、va_arg、va_end,定义在stdarg.h
先看以下代码
二叉树的知识点, 需要有链表的基础知识, 一般二叉树的结构如图示:
二叉树是一种树状结构.
栈是一种数据结构, 满足先入后出.
一般栈支持以下几个操作:
以下的代码片段涉及到了不少的模板函数, 可以自行去官网查询.
从实际问题出发, 期望开发一个函数, 可以计算另外一个函数的耗时; 比如测试下面函数的耗时
新建一个git项目,查看.git目录
需要构建不同平台的bin,但是本地电脑是ubuntu18的系统,怎么构建ubuntu16可用的bin呢?
本文主要介绍docker的基本使用方式。
验证值传递和引用传递的区别。