数据结构速览
数据结构概览
序列式
数组
1. 概述
将相同类型的元素存储于连续的空间,长度不可变。
初始化时需要给定长度同时对每一个索引元素赋值。
2. 可变数组
基于数组和扩容机制实现的数据结构,更为灵活。
STL的实现为vector。
3. vector
可变数组的STL实现,动态控件,随着新元素加入,内部机制会自行扩充空间以容纳新元素。
3.1 迭代器
普通指针都可以作为vector的迭代器并且满足所有必要条件,像vector支持的随机存取,普通指针本就具备,所以vector提供Random Access Iterators。
3.2 vector的数据结构
vector采用连续线性空间,使用两个迭代器start与finish分别指向配置得来的连续空间中已经被使用的范围,并且用迭代器end_of_storage指向整块连续空间(含备用空间)的尾端。
容量(capacity)代表vector整块连续空间的大小,容量总是大于或等于vector的大小,一定容量等于大小,vector即满载,下次新增元素时,容量便扩充至两倍,亦或继续扩充。
3.3 vector的常用操作
3.3.1 初始化
1 | vector<int> vct(10); |
3.3.2 元素操作
1 | vector<int> vct; |
链表
1.概述
以节点为单位,每个元素为独立对象,非连续存储。
1 | struct ListNode{ |
构建链表需要实例化每一个节点。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 南山动物园!