
数据结构/STL
文章平均质量分 77
不摆烂的zzz
这个作者很懒,什么都没留下…
展开
-
二叉树刷题的常规题型
二叉树 在leetcode上,树的默认数据结构是 struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 和链表相比也就是多一个指针原创 2021-09-13 16:40:43 · 173 阅读 · 0 评论 -
链表刷题的常规题型
链表 优点:能灵活的分配内存空间,能在O(1)时间内删除或添加元素 缺点:查询元素需要O(n)时间 适用场景:数据元素个数不确定,经常进行数据的添加或删除 在leetcode中默认的链表结构是 struct ListNode { int val; ListNode* next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x,原创 2021-09-09 19:42:03 · 147 阅读 · 0 评论 -
时间复杂度与空间复杂度
时间复杂度与空间复杂度 一个程序的优劣主要从时间和空间两个维度去考量 一、时间复杂度 比较常见的时间复杂度量级有 O(1),O(n),O(n²),O(logN),O(nlogN),2^n原创 2021-09-08 16:55:02 · 965 阅读 · 0 评论 -
vector和list区别
1、概念: 1)Vector 连续存储的容器,动态数组,在堆上分配空间 底层实现:数组 两倍容量增长: vector 增加(插入)新元素时,如果未超过当时的容量,则还有剩余空间,那么直接添加到最后(插入指定位置),然后调整迭代器。 如果没有剩余空间了,则会重新配置原有元素个数的两倍空间,然后将原空间元素通过复制的方式初始化新空间,再向新空间增加元素,最后析构并释放原空间,之前的迭代器会失效。 性能...原创 2019-08-15 23:41:53 · 127 阅读 · 0 评论 -
红黑树与AVL树
1、红黑树: 红黑树是一种二叉查找树,但在每个节点增加一个存储位表示节点的颜色,可以是红或黑(非红即黑)。通过对任何一条从根到叶子的路径上各个节点着色的方式的限制,红黑树确保没有一条路径会比其它路径长出两倍,因此,红黑树是一种弱平衡二叉树,相对于要求严格的AVL树来说,它的旋转次数少,所以对于搜索,插入,删除操作较多的情况下,通常使用红黑树。 性质: 每个节点非红即黑 根节点是黑的; ...原创 2019-08-16 09:06:22 · 159 阅读 · 0 评论