二叉树的构建,前序以及后序遍历序列,都可以定位root节点,当遍历序列没有重复节点的情况下,以root节点为间隔,可以在中序遍历序列中作划分,递归调用,即可构建二叉树。
由有序链表构建二叉检索树。很长时间没有接触树的题目,没有什么做题的感觉。题目应该从二叉检索树的特点入手,即一颗树,或者为空,或者其左子树的值都小于根节点,右子树的值都不小于其根节点,且左右子树都为二叉检索树。可想而知,若中序遍历一颗二叉检索树,则可以得到一个有序序列,即题目要求是根据加了约束的中序遍历序列,构建二叉树(并不是任意一颗树,都可以只通过中序遍历序列构建)。
前序、中序、后序遍历,二叉树常见的几种深度优先遍历算法。本文中依次实现其递归与非递归解法。对于递归解法来说,三种遍历方式的区别,仅仅在于在什么时候,读取当前节点的值。而非递归解法,前序与中序相似,后序遍历稍显麻烦。
Python可以通过mysqldb模块进行mysql操作,整个RDS这一块的代码架构组织,设想是封装一个CRUD的类,对于不同的表操作,分别进行实例化。这样看来,似乎可以在一定程度上减少sql语句的冗余,代码组织更具层次性。
项目涉及的环境的搭建,包括Nginx的基本配置,基本OK了,目前的方案,与S3的交互,都不使用Backend这边的Python模块去做,而交给Client以及Trainer/Predictor那边的C++模块,相当于在算法模块外面再包一层C++的接口,处理与Server的rest交互,以及与S3的交互。这几天先把与MySQL交互的Python接口封装好。