上节课学习了二分搜索树这样一种有序数据结构 ,本节课将借助二分搜索树来实现更高级的数据结构--集合与映射。 1. 集合 1.1 基于二分搜索树的集合实现 集合的主要特点是不能...
上节课进一步研究了链表及其具有的一种固有属性--递归,并递归实现了链表元素的删除操作。本节课学习另外一种高效的数据结构--树。 1. 二分搜索树 树是一种天然的组织结构,在实...
上一节课主要学习了一种具有真正动态数据结构的数据结构——链表,实现了链表基本的增删改查等操作,基于链表的操作特性,实现了栈的结构,并通过增加尾节点,进一步实现了队列这样一种数...
前面两节课程主要介绍了动态数组、栈以及队列这样三种数据结构,这三种数据结构的底层都是依托于静态数组构建的,靠resize解决固定容量的问题。本节课介绍一种真正的动态数据结构-...
1. 栈 Stack 1.1 栈的特点 栈是一种线性结构 只能从一端添加元素,也只能从同一端(栈顶)取出元素 后进先出(Last In First Out,LIFO) 1.2...
1. Java中的数组 Java中的数组是静态数组,使用场景主要是“索引有语意”的情况,比如按学号查找分数,索引为学号。Java中数组的特点主要包括: 索引从0开始 声明时需...
上节课主要介绍了计算微分的几种数值方法,对一阶微分,最简单的莫过于两点前向差分、后向差分和中心差分这三种方法,其中中心差分的精度最高,这三种差分公式都可以通过推导泰勒展开式得...
上一节课主要介绍了曲线拟合与插值,曲线拟合主要包括线性拟合(单特征线性回归和非线性拟合(非线性方程特征变换、高阶多项式拟合),插值包括多项式插值(拉格朗日形式、牛顿形式)、样...
在Hexo中渲染MathJax数学公式 在用markdown写技术文档时,免不了会碰到数学公式。常用的Markdown编辑器都会集成Mathjax,用来渲染文档中的类Late...
上节课主要介绍了特征值与特征向量的概念,低阶矩阵的特征值可以通过列出特征方程求解,高阶矩阵则可以通过幂法与反幂法迭代求解出最大特征值与最小特征值(模),要求出矩阵的全部特征值...
上节课主要介绍了线性方程组的两种迭代求解算法,一个是Jacobi迭代(同步更新),一个是高斯塞德尔迭代(异步更新)。对于特殊的三对角系统,一种更简单快捷的Thomas算法也可...