算法题
swingzhou93
这个作者很懒,什么都没留下…
展开
-
字符串全排列之递归算法
做算法练习遇到这样一道习题,如下:编写带有下面声明的例程:public void permute(String str);private void permute(char[] str,int low,int high);第一个方法是驱动程序,它会调用第二个方法并显示String str中字符的所有排列。例如输入“abc”,则输出“abc”,"acb","bac","bca","ca原创 2017-03-19 19:11:01 · 717 阅读 · 0 评论 -
一个复杂加和公式的递归算法
我的解法如下: /** * 复杂递归的计算,这个好像O(n^n) * 用来计算上面那个公式的方法 * @param num * @return */ public double getResult(int num) { //递归出口,即N=0时,公式的和 if(num == 0) { return 4.0 / 3; } double sum原创 2017-03-19 20:11:19 · 2751 阅读 · 0 评论 -
单链表实现栈
这个例子是课本上的一道习题,要求用单链表高效实现栈数据结构,并且不能使用头、尾节点。1.先来谈谈比较艰难的一个思路链表存储一个当前节点,当实现压入方法时,先判断当前节点是否存在,若为空则直接赋值,不为空,则添加到当前节点的next节点,并将当前节点转移到next节点。链表同时存储根节点,当实现弹出方法时,采用遍历找到最后节点的pre节点,以删除最后节点,这样弹出方法需遍历,效率不高。原创 2017-04-08 19:08:46 · 898 阅读 · 0 评论 -
二叉树懒惰删除相关例程
在编写二叉树懒惰删除相关例程时,发现findMin和findMax两个方法很是复杂,于是上网百度懒惰删除相关例程的解法,却没有找到。今天硬是用比较粗糙的方法憋了出来,既然网上无法百度的到,那么我就把我的解法贴出来交流交流吧。首先是节点类public class TreeNode { private T value;//节点值 private TreeNode left;//左节点原创 2017-04-29 22:44:10 · 1742 阅读 · 0 评论 -
中序线索二叉树
1.首先创建线索节点类public class ClueNode { private T value;//节点值 private ClueNode left;//左节点 private ClueNode right;//右节点 private boolean isLeftClue;//左线索标志 private boolean isRightClue;//右线索标志 public原创 2017-05-18 23:40:16 · 407 阅读 · 0 评论 -
跳房子散列
1.创建项目元素类,存储每个位置的值与距离标志public class HashItem { private T value;//值 private int dist;//距离标志 public HashItem(T value) { this.value = value; } public T getValue() { return value; } public v原创 2017-05-18 23:49:25 · 2312 阅读 · 3 评论