常见数据结构构 图问题


程序 = 常见数据结构构 + 算法

运行期間无法改变数组大小由编译期间确定,C++中array即此类

矢量只能在末尾增删元素

数组大小增长策略:每次增加长度为原来1倍(有些编译器增加0.5倍)

这样可保证追加元素的平均时间复杂度为O(1)

优先队列,默认由 vector 实现也可由 deque 实现。它保证顶部元素始终是最大值可用于实现堆排序。

双端队列可在开头或末尾增删元素

栈,默认由 deque 实现也可由 list 或 vector 实现。是一种先进后出的常见数据结构构

队列默认由 deque实现,也可由 list 实現是一种先进先出的常见数据结构构

只能从头到尾顺序遍历,不能逆序遍历即没有 rbegin() 接口


常见的树有二叉树、二叉搜索树、二叉平衡树、红黑树等。

C++ 中的 set multiset map multimap 是用二叉搜索树实现的这种常见数据结构构支持二分搜索,所以增删改查的复杂度都是O(logn)

类似数学中的集合,set 中不能包含重复的元素元素是排好序的,且不能被修改

与 set 类似,但可以包含重复元素

映射类似数学中的函数每一个 key 对应一个 value,写成函数表達式为:value=f(key)其中 f 被称为哈希函数。

接口与 set 类似不在赘述

接口与 map 类似,不在赘述

}

我要回帖

更多关于 常见数据结构 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信