Algorithms - 树
文章平均质量分 77
zhouhao011280s
这个作者很懒,什么都没留下…
展开
-
根据前序遍历和中序遍历结果构造二叉树
根据 前序遍历 和 中序遍历 结果 构造相应的二叉树 基本思路: 1.在前序遍历结果中查找子树的根 2.在中序遍历结果中查找左右子树的结点的数量 3. 递归地执行步骤1和2 构造各层子树 package com.cupid.algorithm.tree; public class ConstructBinaryTree { /** * Construct a binary原创 2012-10-06 22:05:16 · 908 阅读 · 0 评论 -
给定key值,在Binary Search Tree中查找最接近该键值的结点集合
今天在微博见到的题目: 给定key值,在Binary Search Tree中查找最接近该键值的结点集合;还有key值的结点可以不在树中。 基本思路:根据key值搜索树,找到最接近值nearest (可以等于或不等于key),再在此基础上使用 前驱和后继 指针进行查找和比较。 这里定义了 insert()方法方便使用随机数构造树;predecessor()和successor()方法 作原创 2012-10-06 22:22:43 · 1478 阅读 · 0 评论 -
给定key值,在Binary Search Tree中查找最接近该键值的结点集合 (补充)
以下代码借鉴了微博网友的思路: 1.查找key值最接近指定key值的结点,保存至me中 2.中序遍历BST,在此过程中将结点保存至一个大小为m的队列中。 1) 当结点的key值小于me.key时,入队/出队,维持队列大小为m 2)当结点就是me时,判断me.key是否等于指定的key;是,不入队,否,入队 3) 当结点的key值大于me.key,比较其键值与key的差值 和 key与队首原创 2012-10-07 09:51:11 · 689 阅读 · 0 评论 -
趣味迷宫 F(2011) = 2012 , 从2011走到2012
如上图,入口2011,经过加减乘除后到达出口2012。 规则:1、不能连续执行两次操作;2、方向必须”向前“。 具体例子:从/2到*3后,只能执行-5,不能掉头执行/2或者+7(规则2),更加不能够再次*3(规则1) 在微博 http://weibo.com/1915548291/z4eTPtAnv 发现此问题。此微博的评论有其他同学更高效的算法(A*算法、双向BFS etc.),有原创 2012-11-11 14:44:55 · 880 阅读 · 0 评论