一、常见的数据结构
我们常见的数据结构一般有:
- 数组
- 栈
- 堆
- 链表
- 队列
- 树
- 图
- 散列表

二、什么时候堆、什么时候栈
2.1 什么是栈
在执行函数时,函数内局部变量存储单元都在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器中,效率很高,但是分配的内存容量有限。
2.2 什么是堆
堆能够实现动态内存分配,程序在运行时候用malloc或者new申请任意大小的内存,开发者自己负责在何时使用free或者delete释放内存。动态内存的生存期由开发者决定,使用非常灵活,如果在堆上分配了空间就有责任回收它,否则运行的程序就会出现内存泄漏。
| 堆 | 栈 | |
|---|---|---|
| 分配效率 | 分配效率低 | 不会导致内存碎片,分配效率高 |
| 使用 | 要分配大量内存的场景 | 函数 |

本文介绍了数据结构中的基本概念,包括数组、栈、堆、链表、队列、树和图等。对于栈和堆,详细讲解了它们的区别和应用场景,栈通常用于函数调用和局部变量存储,而堆则用于动态内存分配。在树的章节中,特别讨论了红黑树的特性及其在数据结构中的重要应用。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



