前端(数据结构与算法)学习笔记
前端(数据结构与算法)学习笔记
JavaScript 其它杂项
共1Star
详细介绍
个人学习笔记
成长从笔记开始
链表
- 什么是链表?
链表是通过"指针"(内存地址)将一组零散的内存串联起来的一种数据结构 - 链表与数组的区别
存储方式 | 插入&删除 | 随机访问性 | |
---|---|---|---|
数组 | 需要一串连续的内存空间 | 为了保持数据的连续性,需要做大量的数据搬移时间复杂度O(n) | 可通过下标随机访问 时间复杂度O(1) |
链表 | 通过"指针"将零散的内存串联起来 | 只改变相邻的节点时间复杂度为O(1) | 需要从头开始一个一个查找 时间复杂度O(n) |
- 链表的基础类型
- 单链表
- 双向链表
- 循环链表
栈
栈是一种遵从后进先出原则的有序集合
例如一摞叠在一起的盘子。我们平时放盘子的时候,都是从下往上一个一个放;取的时候,我们也是从上往下一个一个地依次取,不能从中间任意抽出。后进者先出,先进者后出,这就是典型的“栈”结构
栈是一种“操作受限”的线性表,只允许在一端插入和删除数据。
栈的作用与实践:函数调用栈,编译器如何利用栈来实现表达式求值,借助栈来检查表达式中的括号是否匹配等
用数组实现的顺序栈
用链表实现的链式栈
队列
栈是一种遵从先进先出原则的有序集合