摘要: 思路 二叉排序树,二叉搜索树好像都行,原理应该都懂,比较基础,但要写出来还是有相当大的难度的。 查找 查找比较简单,基本都是一个while就解决。但查前驱与后继较难,可能需要上溯父节点。 任意键值 查最值 查某键值的前驱或后继 先序,中序,后序遍历 修改 修改键 值对,这个非常简单,查找出来即可。 阅读全文
posted @ 2019-06-25 22:41 happy_codes 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 思路 利用二分思想,划分左右区间,并让左右区间排序完成后,进行合并 C++ include include include using namespace std; define MX 100005 / / int cparr[MX]; /// 归并排序 void mergesort(int arr 阅读全文
posted @ 2019-06-25 10:40 happy_codes 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 思路 堆的原理就是每个节点保存以自身为根的树的最值。 那么左右子树,根节点也有此性质。 由此,较难的点便是插入与删除的树的调整。 C++ include include using namespace std; define INF 0x3f3f3f3f3f3f3f3f define MX 2000 阅读全文
posted @ 2019-06-25 10:30 happy_codes 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 思路 思路比较简单,不断划分区间即可 先序遍历的字符串的首字符肯定是树的根节点,而中序遍历的字符串的左右子树肯定被根分割开。 阅读全文
posted @ 2019-06-25 10:11 happy_codes 阅读(309) 评论(0) 推荐(0) 编辑