第2章 TypeScript封装或实现常用容器
2.1 ArrayBuffer、DataView以及类型数组实现原理
2.1.1 C/C++模拟JS/TS中的ArrayBuffer对象
2.1.2 C/C++模拟JS/TS中的DataView对象
2.1.3 C/C++版CDataView vs. JS/TS版DataView
2.1.4 C/C++模拟JS/TS中的Float32Array对象
2.1.5 C/C++版CFloat32Array vs. JS/TS版Float32Array
2.1.6 JS/TS中的类型数组对象
2.2 封装动态类型数组
2.2.1 TypedArrayList的成员变量及构造函数
2.2.2 TypedArrayList的push方法
2.2.3 TypedArrayList的slice方法和subarray方法
2.2.4 TypedArrayList的其他方法和属性
2.2.5 capacityChangedCallback回调函数
2.3 封装关联数组
2.3.1 JS/TS中的关联数组
2.3.2 TypeScript索引签名
2.3.3 ES6 Map对象
2.3.4 封装成Dictionary字典对象
2.3.5 测试Dictionary对象
2.3.6 红黑树还是哈希表
2.4 实现SGI STL风格双向循环链表
2.4.1 泛型的ListNode结构
2.4.2 List中的头节点
2.4.3 双向循环概念
2.4.4 List的查询与遍历操作
2.4.5 List的插入操作
2.4.6 List的删除操作
2.4.7 List的push / pop / push_front / pop_front操作
2.5 封装队列与栈
2.5.1 声明IAdapter< T >泛型接口
2.5.2 实现AdapterBase< T >抽象基类
2.5.3 实现Queue子类和Stack子类
2.6 实现通用树结构
2.6.1 树结构的内存表示
2.6.2 树节点添加时的要点
2.6.3 树节点isDescendantOf和remove方法的实现
2.6.4 实现addChild等方法
2.6.5 查询树结构的层次关系
2.6.6 广度/深度优先遍历算法
2.6.7 队列及栈在广度/深度优先遍历中的应用
2.6.8 广度/深度线性遍历枚举器
2.6.9 树结构枚举器的实现
2.6.10 测试树结构迭代器
2.6.11 深度优先的递归遍历
2.7 本章总结