
数据结构与算法
lzy_xxy
这个作者很懒,什么都没留下…
展开
-
求最大子序列之和的四种方法
四种求最大子序列和的方法,效率一个比一个高。方法二是方法一的改进方法三是采用分治的思想,编写递归函数方法四 最为巧妙,代码少,效率高,逻辑清晰对原书中的代码做了一小点修改,能处理负数数组(结果为最小的负数)附上代码package chapter2;import java.util.Random;public class maxSubSum {原创 2016-09-22 15:44:13 · 2146 阅读 · 1 评论 -
堆
public class BinaryHeap4 <T extends Comparable<? super T>>{ private T[] array=(T[])new Comparable[100]; private int currentSize; public void insert(T x) { int hole=++currentSiz原创 2017-07-19 22:46:21 · 385 阅读 · 0 评论 -
排序算法汇总
import java.util.concurrent.Callable;public class InsertSort0703//<T extends Comparable<? super T>> { public static Integer[] a= new Integer[]{31,23,12,24,9,43,1,3,10,20,31,4,13,5,4,54原创 2017-07-19 22:44:42 · 442 阅读 · 0 评论 -
全排列
题目:给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有’a’ < ‘b’ < … < ‘y’ < ‘z’,而且给定的字符串中的字母已经按照从小到大的顺序排列。输入 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。 输出 输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在前面。字母序如下定义:已知S =原创 2017-05-22 10:37:57 · 302 阅读 · 0 评论 -
Uva514 Rails(铁轨)
题目描述:某城市有一个火车站,有n节车厢从A方向驶入车站,按进站的顺序编号为1-n.你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨并驶入车站。例如,出栈顺序(5 4 1 2 3)是不可能的,但是(5 4 3 2 1)是可能的。 题目分析:为了重组车厢,借助中转站,对于每个车厢,一旦从A移入C就不能回到A了,一旦从C移入B,就不能回到C了,意思就是A->C和C->B。而且在中转站C中,原创 2017-05-06 16:42:21 · 684 阅读 · 0 评论 -
Uva10305 Ordering Tasks(拓扑排序)
UVa:10305 Ordering Tasks https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=838&page=show_problem&problem=1246这是一道拓扑排序,关于拓扑排序可以查看这里,由题意我们可以知道,我们无需判断环的存在,因此代码简洁了不少,不过,题目中要求原创 2017-05-23 21:48:12 · 410 阅读 · 0 评论 -
Uva 572-Oil Deposits
题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=105&page=show_problem&problem=513题目类型: 搜索样例输入: 1 1 * 3 5 @@* @ @@* 1 8 @@**@* 5 5 **@ @@@ @*@ @@@*@ @@原创 2017-05-23 16:20:14 · 943 阅读 · 0 评论 -
ADV205拿糖果(动态规划)
ADV-205 拿糖果 问题描述 妈妈给小B买了N块糖!但是她不允许小B直接吃掉。 假设当前有M块糖,小B每次可以拿P块糖,其中P是M的一个不大于根号下M的质因数。这时,妈妈就会在小B拿了P块糖以后再从糖堆里拿走P块糖。然后小B就可以接着拿糖。 现在小B希望知道最多可以拿多少糖。 输入格式 一个整数N 输出格式 最多可以拿多少糖 样例输入 15 样例输出 6 数据规模和约定原创 2017-05-22 16:50:16 · 612 阅读 · 0 评论 -
二叉树的四种遍历(java代码)
代码1:四种遍历方式package 第四章;import java.util.LinkedList;/** * @author 许湘扬 * @email 547139255@qq.com * @detail 先序创建 各种遍历 二叉树 *//* * 先序创建、输出 二叉树 * 先序 二叉树 * * 创建参考自:http://www.cnblogs.com/llhthin原创 2017-04-19 18:49:10 · 23790 阅读 · 2 评论 -
LinkedList模拟栈和队列
代码如下,一看便懂LinkedList<Integer> list=new LinkedList<>();//-----------------------模拟堆栈-----------------list.push(1);//入栈list.push(2);list.push(3);list.push(4);System.out.println(list.size());while(!原创 2017-04-18 19:00:52 · 380 阅读 · 0 评论 -
Java的栈实现(数组、链表两种方式)
1、用链表实现栈时,每次push新的值的时候,先将入栈的节点的next指向TOP(当前栈顶),然后另Top等于新入栈的节点。 Top的值初始化为null,这样当第一个值进栈时,第一个节点的next指向Top就等于null了。 2、定义内部节点类时,写一个带参的构造方法,这样new一个新节点很方便 代码如下 非常简单class Mystack{ private Node Top;//指原创 2016-09-28 20:15:49 · 547 阅读 · 0 评论 -
蓝桥-基础练习29-高精度加法-java代码
问题描述 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。 定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。 计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把原创 2017-03-13 16:13:11 · 2304 阅读 · 6 评论 -
蓝桥-基础练习30-阶乘计算-java代码
问题描述 输入一个正整数n,输出n!的值。 其中n!=1*2*3*…*n。 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。 首先将a设为1,然后乘2,乘3,当乘到n时,即得原创 2017-03-13 15:41:47 · 3110 阅读 · 0 评论 -
Java表达式求值
1、先读取表达式,用字符串存,比如字符串“1+2+3”2、将字符串中的数字和运算符识别出来,按依次存在linkedlist里面 ,就变成 了 1+2+3 (数字为integ类型,字符串为#character类型),这就是中序表达式3、将中序表达式 转换成 后序表达式 存在另一个linkedlisi里面4、计算后序表达式的值本程序主要是理清表达式求值的方法,本程序 还存在一些小问题:不能识别 小数原创 2016-09-29 23:01:07 · 4278 阅读 · 0 评论 -
JAVA用树结构实现目录系统
1使用 第一个儿子/下一兄弟表示法 来表示树树节点定义如下:private class TreeNode { String data; TreeNode firstChild; TreeNode nextSibling; public TreeNode(String data, TreeNode firstChild,原创 2016-09-26 15:14:29 · 4612 阅读 · 1 评论 -
Java数组实现循环队列、Java链表实现队列
Java实现队列的两种方式(链表,循环数组)数组实现循环队列1、需要一个theSize变量,来判断队列是否填满了数组,或者判断队列是否为空代码如下public class cycleQueue<T>{ private int front ;//队头 private int back; //队尾 private int theSize; //队伍长度 priva原创 2016-09-25 21:59:54 · 1496 阅读 · 1 评论 -
二叉搜索树
package 第四章2;import java.util.LinkedList;import java.util.Queue;import javax.xml.bind.Unmarshaller;public class BinarySearchTree2<T extends Comparable<? super T>>{ Node<T> root; public Binary原创 2017-07-19 22:48:06 · 460 阅读 · 0 评论