随笔分类 -  算法

摘要:当N为50时下面这段代码会打印什么?从较高的抽象层次描述给定正整数N时这段代码的行为。 Stack stack = new Stack(); while (n > 0) { stack.push(n % 2); n... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(122) 评论(0) 推荐(0)
摘要:编写一个Stack的用例Parentheses,从标准输入读取一个文本流并使用栈判定其中的括号是否配对完整。例如,对于[()]{}{[()()]()} 程序应该打印true,对于 [(])则打印false。/** * Description : * Author : mn@furzoom... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(210) 评论(0) 推荐(0)
摘要:假设某个用例程序会进行一系列入栈和出栈操作。入栈操作会将整数0到9按顺序压入栈;出栈操作会打印返回值。下面哪种顺序是不可能产生的?(a) 4 3 2 1 0 9 8 7 6 5(b) 4 6 8 7 5 3 2 9 0 1(c) 2 5 6 7 4 8 9 3 1 0(d) 4 3 2 1 ... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(361) 评论(0) 推荐(0)
摘要:给定以下输入,java Stack的输出是什么?it was - the best - of times - - - it was - the - -Stack:/** * Description : * Author : mn@furzoom.com * Date : S... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(192) 评论(0) 推荐(0)
摘要:为FixedCapacityStackOfStrings添加一个方法isFull()。FixedCapacityStackOfStrings:/** * Description : * Author : mn@furzoom.com * Date : Sep 28, 201... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(111) 评论(0) 推荐(0)
摘要:字符串解析。为你在练习1.2.13中实现的Date和Transaction类型编写能够解析字符串数据的构造函数。它接受一个String参数指定的初始值,格式如下:类型格式举例Date由斜杠分隔的整数5/22/1939Transaction客户、日期和金额,由空白字符分隔Turing 5/22/193... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(208) 评论(0) 推荐(0)
摘要:累加器的方差。以下代码为Accumulator类添加了var()和stddev()方法,它们计算了addDataValue()的方法的参数的方远大和标准差,验证这段代码。/** * Description : * Author : mn@furzoom.com * Date ... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(186) 评论(0) 推荐(0)
摘要:有理数实现的健壮性。在Rational的开发中使用断言来防止溢出。根据算法-第四版-练习1.2.16解答修改如下方法: public Rational plus(Rational b) { assert(den Integer.MIN_VALUE); ass... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(245) 评论(0) 推荐(0)
摘要:有理数。为有理数实现一个不可变数据类型Rational,支持加减乘除操作。无需测试溢出。/** * Description : * Author : mn@furzoom.com * Date : Sep 27, 2016 2:19:35 PM * Copyright (c... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(262) 评论(0) 推荐(0)
摘要:文件输入。基于String的splite()方法实现In中的静态方法readInts()。/** * Description : * Author : mn@furzoom.com * Date : Sep 27, 2016 2:07:53 PM * Copyright (... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(197) 评论(0) 推荐(0)
摘要:问题Deque。一个双向队列(或者称为deque)和栈或队列类似,但它同时支持在两端添加或删除元素。Deque能够存储一组元素并支持如下API。/** * ----------------------------------------------------- * public class De... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(260) 评论(0) 推荐(0)
摘要:问题Steque。一个以栈为目标的队列(或称steque),是一种支持push、pop和enqueue操作的数据类型。为这种抽象数据类型定义一份API并给出一份基于链表的实现。解决思路/** * ----------------------------------------------------... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(153) 评论(0) 推荐(0)
摘要:问题编写一个函数,接受一条链表的首结点作为参数,(破坏性地)将链表反转并返回结果链表的首结点。解决思路代码 public Node reverse() { Node oldFirst = first;; first = null; whi... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(203) 评论(0) 推荐(0)
摘要:问题实现一个嵌套类DoubleNode用来构造双向链表,其中每个结点都含有一个指向前驱元素的引用和一个指向后续元素的引用(如果不存在则为null)。为以下任务实现若干静态方法:在头插入结点、在表尾插入结点、从表头删除结点、从表尾删除结点、在指定结点前插入新结点、在指定结点之后插入新结点、删除指定结点... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(161) 评论(0) 推荐(0)
摘要:问题用环形链表实现Queue。环形链表也是一条链表,只是没有任何结点链接为空,且只要链表非空则last.next的值就为first。只能使用一个Node类型的实例变量(last)。解决思路出列时将last.next指向last.next.next。入列时需要修改两条链接才能真正的让一个结点加入到一个... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(161) 评论(0) 推荐(0)
摘要:问题用递归的方法解答上一道练习。解决思路见上一题。代码算法-第四版-1.3 背包、队列和栈-习题索引汇总算法-第四版习题索引汇总 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(165) 评论(0) 推荐(0)
摘要:问题编写一个方法max(),接受一个链表的首结点作为参数,返回链表中键最大的节点的值。假设所有键均为正整数,如果链表为空则返回0。解决思路这题没有看明白,链表的键指的是什么呢?有知道的回复一下,十分感谢!代码算法-第四版-1.3 背包、队列和栈-习题索引汇总算法-第四版习题索引汇总 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(196) 评论(0) 推荐(0)
摘要:问题编写一个方法insertAfter(),接受一个链表和一个字符串key作为参数,删除链表中所有item域为key的结点。解决思路遍历链表,删除元素结点,注意别断链。复杂度O(N)。由于使用类来封装,这里只需提供一个字符串参数即可。代码 public void remove(Item ite... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(204) 评论(0) 推荐(0)
摘要:问题编写一个方法insertAfter(),接受两个链表结点作为参数,将第二结点插入链表并使之成为第一个结点的后续结点(如果两个参数为空则什么也不做)。解决思路插入过程保持后续连接正常。代码 public void insertAfter(Node pos, Node node) { ... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(144) 评论(0) 推荐(0)
摘要:问题编写一个方法removeAfter(),接受一个链表结点作为参数并删除该结点的后续结点(如果参数结点或参数结点的后续结点为空则什么也不做)。解决思路迭代删除其后续结点。代码 public void removeAfter(Node node) { if (node ==... 阅读全文
posted @ 2017-10-22 15:50 枫竹梦 阅读(176) 评论(0) 推荐(0)