数据结构及算法
文章平均质量分 66
光光-Leo
奋斗在开发一线
展开
-
树的孩子链表表示法
import tree.PTree.PTNode;//树的孩子链表表示法public class CTree{ int max=100; int n,root,parent,child; PLNode rootNode; CTNode firstChild; PLNode nodes[]=new PLNode[max]; class原创 2013-11-03 15:51:34 · 6041 阅读 · 0 评论 -
MD5加密算法(java及js)
为了防止用户登陆过程中信息被拦截导致信息泄露,我们应该在客户端就对用户密码进行加密。浏览器提交给服务器的是加密后的信息,即使被恶意拦截,被拦截信息也已做了加密处理,现在比较安全的一种加密算法是MD5加密算法,原创 2015-04-06 22:22:22 · 2407 阅读 · 0 评论 -
哈夫曼树可执行代码(创建,层次遍历)
import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;import design.BTree.BTNode;public class HuffMan { HNode root=new HNode(); class HNode{ double data; HNode le原创 2013-12-31 20:47:58 · 1625 阅读 · 0 评论 -
最大子序列和问题
问题描述:求-2,11,-4,13,-5,-2 的最大子序列和。方法一:使用3层for循环嵌套,穷举式的尝试所有的可能,代码如下:public class Demo1 { public int maxSum(int a[]){ int maxSum=0; for(int i=0;i<a.length;i++){ for(int j=i;j<a.length;j+原创 2013-09-20 11:18:19 · 1087 阅读 · 1 评论 -
汉诺塔问题的java递归实现
import java.util.Scanner;public class Hanoi { int count=0; public void hanoi(int n,char A,char B,char C){ //把n个盘子移动到c count++; if(n==1){ System.out.println("盘子1从"+A+"移动到"+C); //再把最下边那原创 2013-12-21 22:05:48 · 1134 阅读 · 0 评论 -
采药问题 01背包
Description:辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”原创 2013-12-23 21:32:28 · 1125 阅读 · 0 评论 -
hdu-2546 饭卡 01背包
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2546 import java.util.Scanner;public class Main { public int max(int a,int b){ return a>b?a:b; } public int packet(int n,int pr原创 2013-12-25 22:55:05 · 815 阅读 · 0 评论 -
二叉树的先序创建,先序,中序,后序的递归与非递归遍历,层次遍历,叶子结点数及树的深度
二叉树的先序创建,先序,中序,后序的递归与非递归遍历,层次遍历,叶子结点数及树的深度计算输入格式:如 abd###ce##f##* package tree;//二叉树的二叉链表实现import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;import java.u原创 2013-11-13 22:45:08 · 1954 阅读 · 0 评论 -
最短寻道优先算法----SSTF算法
该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短java代码实现如下:import java.util.List;import java.util.Scanner;public class SSTF { private int shortIndex=0; private int visit[]; //访问序列原创 2014-06-11 11:45:47 · 15989 阅读 · 0 评论 -
表的顺序结构---重写Arraylist类
重写ArrayList类,为防止冲突,重写为MyArrayListpublic class MyArrayList{ int N=10; AnyType a[]; //定义一个数组,未分配空间 int theSize; public MyArrayList(){ clear(); } publi原创 2013-10-12 17:25:15 · 1674 阅读 · 0 评论 -
单链表的实现---SingleLinkedList
单链表的实现,定义为SingleLinkedListclass Node{ //结点Node类 public AnyType data; public Node next; public Node(AnyType d,Node next ){ this.data=d; this.next=next; } public Node(Any原创 2013-10-12 22:11:24 · 1316 阅读 · 1 评论 -
水题 hdu1002------用BigInteger解决大数问题
Problem DescriptionI have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B. InputThe first line of the input contains an integer T(1<=T<原创 2013-09-27 23:55:03 · 1310 阅读 · 0 评论 -
二叉查找树的实现(可执行代码)
import java.util.Scanner;public class BSTree>{ BiNode root; class BiNode{ AnyType data; BiNode left; BiNode right; public BiNode(AnyType data){ this.data=data; } public BiNod原创 2014-01-03 17:36:11 · 929 阅读 · 0 评论 -
如何将数据库中存的树转化为树形列表(以easyui的tree为例)
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。很多时候,我们会把一棵树存放到数据库中,当前台需要展示一个树形列表时,将这棵树读取出来并显示,这个过程是怎么实现的呢?这篇文章是以构造一棵easyui前台框架的一个树形列表为例,后台框架是spring MVC+JPA。...原创 2015-05-22 09:20:42 · 18510 阅读 · 11 评论 -
双层嵌套json字符串(即json对象内嵌json数组)解析为Map
之前我层写过一篇文章,介绍了json与map的相互转化,但当时只涉及到单一的json对象或json数组,对json对象内嵌套这json数组的json字符串无法处理,这篇文章主要解决这个问题。 之前的那篇文章址:http://blog.csdn.net/u012116457/article/details/24371877 首先要在项目中导入json的jar包: 在下面的代码中处理json对原创 2015-09-07 12:02:22 · 39476 阅读 · 0 评论 -
电梯调度算法---SCAN算法
扫描(SCAN)调度算法:总是从磁臂当前位置开始,沿磁臂的移动方向去选择离当前磁臂最近的那个柱面的访问者。如果沿磁臂的方向无请求访问时,就改变磁臂的移动方向。采用这种调度算法,需要为访问者设置两个队列,根据磁头的移动方向,能访问到的访问者由近及远排队,背离磁头移动方向的访问者也由近及远排为另一队。先按磁头移动方向队列调度访问者访问磁盘,当该方向没有访问者时,再改变方向,选择另一个访问者队列访问磁盘原创 2014-06-11 11:49:41 · 15406 阅读 · 0 评论 -
A计划---POJ2299 Ultra-QuickSort
A题不分早晚对于刚入坑的我来说,这道题还是有点难度的。最初使用二分插入排序计算的,但这个算法虽然相对直接插入排序性能优化了不少,平均复杂度为O(nlogn),但最坏情况下时间复杂度为O(n2),所以超时了。后来经过提示知道这是一道逆序数的题,可以使用归并排序实现,时间复杂度为O(nlogn), 不过需要注意的一个地方是题目中给定的数据范围是50W,所以使用最大情况下结果会超出int的存原创 2017-11-07 09:56:17 · 357 阅读 · 0 评论 -
java模拟实现生产者---消费者问题
本文章为小编原创,请尊重文章的原创性,转载请注意写明转载来源:http://blog.csdn.net/u012116457已知技术参数:生产者消费者问题,描述一组生产者向一组消费者提供产品/消息。它们共享一个有界缓冲区,生产者向其中放产品/消息,消费者从中取产品/消息。只要缓冲区未满,生产者可放产品/消息,只要缓冲区有数据,消费者可取消息。即应满足下列二个同步条件:1.只有在原创 2014-06-24 17:23:35 · 2903 阅读 · 2 评论 -
二叉查找树的插入,删除,查找
二叉查找树的添加,删除,查找算法:import java.util.Scanner;public class BinarySearchTree> { BiNode root; class BiNode{ AnyType data; BiNode left; BiNode right; public BiNode(AnyType data){ th原创 2013-11-13 20:20:47 · 810 阅读 · 0 评论 -
树的双亲表示法
树的双亲表示法是用一组连续空间(数组)存储树的节点,同时在每个节点中附设一个指示器指示其双亲节点在数组中的位置。其结构如图: package tree;import java.util.*;public class PTree { int max=100; int n,root; int a[]=new in原创 2013-10-21 21:59:08 · 3994 阅读 · 0 评论 -
树的孩子链表表示法可执行代码(创建,层次遍历)
import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;//孩子链表表示法public class CTree{ PLNode nodes[]=new PLNode[20]; int n; PLNode rootNode; class CNode{ int child; CN原创 2013-12-31 20:46:09 · 2070 阅读 · 0 评论 -
树的双亲表示法可执行代码(创建树,层次遍历,求深度)
import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;//双亲表示法创建public class PTree{ PTNode nodes[]=new PTNode[15]; int n; //结点在数组中的位置 PTNode rootNode; cl原创 2013-12-31 20:43:22 · 4302 阅读 · 0 评论 -
java中途强制跳出递归
请珍惜小编劳动成果,该文章为小编原创,转载请注明出处。无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。有些时候我们需要在中途强制跳出递归,而且还是需要一步跳出,而不一层一层的跳出,这时,我们可以采用抛异常的方法来实现。 class Test { stati...原创 2014-05-25 11:35:26 · 15171 阅读 · 1 评论 -
01背包问题
public class PacketDemo1 { int V; int T; int f[]; int w[];//价值 //={8,10,4,5,6}; int c[];//体积 //={600,400,200,200,300}; int fla原创 2013-12-23 20:40:02 · 791 阅读 · 0 评论 -
有向网的各种功能实现
有向网的各种功能实现:1:在邻接矩阵、邻接表和逆邻接表之间转换。2:完成增加顶点和删除顶点的功能,删除顶点也要删除与之关联的边;3:完成增加边和删除边的功能;4:完成图的深度优先遍历和广度优先遍历;5:广度优先的生成树并对生成树进行遍历6:判断图的连通性,输出连通分量的个数;7:判断图中是否存在环;8:判断u到v是否存在路径;9:实现Dijkstra和Floyd原创 2013-12-28 21:15:03 · 1044 阅读 · 0 评论 -
有向图的邻接矩阵表示法(创建,DFS,BFS)
package shiyan;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class GraphMartix { class Vertext{ char data; boolean visit; public Vertext(char d){原创 2013-12-14 10:58:46 · 3595 阅读 · 0 评论 -
最近最久未使用页面淘汰算法———LRU算法(java实现)
LRU算法,即Last Recently Used ---选择最后一次访问时间距离当前时间最长的一页并淘汰之——即淘汰最长时间没有使用的页按照最多5块的内存分配情况,实现LRU算法代码如下:public class LRU { private int theArray[]; private int back; //定义队尾 private int currentS原创 2014-05-31 16:43:18 · 5948 阅读 · 2 评论 -
双向循环链表(插入,删除,就地逆置)
package design;import java.util.Scanner;//循环双链表public class LinkedList { private int theSize; private Node beginMarker; private Node endMarker; class Node{ //定义匿名类原创 2014-01-02 20:13:56 · 5309 阅读 · 0 评论 -
双链表---LinkedList的重写
重写Linkedlist类,改写为MyLinkedList,未继承Iterable类。 public class MyLinkedList { private int theSize; private Node beginMarker; private Node endMarker; private static class Node{原创 2013-10-12 20:49:41 · 1599 阅读 · 0 评论 -
栈的两种实现方法--数组实现与链式实现
栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶(top)。栈又叫做先进后出(Last In First Out)表。栈通过push向栈输入,通过pop和top从栈中输出,只有栈顶元素可以访问。栈有两种实现方法,一种是是通过数组实现,一种是链式实现。数组实现代码如下:public class ArrayStack { privat原创 2013-10-13 12:17:36 · 1616 阅读 · 1 评论 -
交换A与B值的四种方法
在网上看到了这样一道面试题,“int A=5,int B=2,怎样交换A与B的值”,或许这是一道简单到不能再简单的题,但能作为一道面试题,肯定有其独特之处大多数人会通过定义第三个变量来中转,即:方法一:int temp;temp=A;A=B;B=temp; 其实除了这种方法,还可以不通过中间变量,仅经过简单运算就地交换 例如:利用加减法方法二:原创 2013-11-16 19:00:59 · 3770 阅读 · 0 评论 -
二叉树的各种实现(创建,叶子结点数,是否为堆,完全二叉树,二叉查找树,交换左右孩子)
import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;import java.util.Stack;public class BTree> { BTNode root=new BTNode(); class BTNode{ char data; BTNode left;原创 2014-01-03 17:34:53 · 1496 阅读 · 0 评论 -
最优二叉树(哈夫曼树)知识点
路径:在一棵树中从一个结点往下到孩子或孙子结点之间的通路结点的路径长度:从根节点到该节点的路径上分支的数目树的路径长度:树中每个结点的路径长度之和结点的权:给树中的结点赋予一个某种含义的值,则该值为该节点的权结点的带权路径长度:结点的路径长度乘以结点的权树的带权路径长度(WPL):树中所有叶子结点的带权路径长度 (Weight Path Length) 最优二叉树(哈夫原创 2013-11-17 22:07:21 · 2474 阅读 · 0 评论 -
银行家算法java实现
关于银行家算法的理论知识,课本或者百度上有好多资料,我就不再多说了,这里把我最近写的银行家算法的实现带码贴出来。由于这是我们的一个实验,对系统资源数和进程数都指定了,所以这里也将其指定了,其中系统资源数为3,进程数为5.import java.util.Scanner;import javax.swing.plaf.basic.BasicInternalFrameTitlePane原创 2014-05-09 12:52:26 · 17444 阅读 · 0 评论 -
hdu1004----用java链表实现
Let the Balloon RiseTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 60158 Accepted Submission(s): 22125Problem DescriptionContest原创 2013-10-17 22:08:44 · 1067 阅读 · 0 评论 -
队列的顺序实现(循环数组)与链式实现
队列(queue)同栈一样,也是表。 是插入在一端(队尾)进行而删除在另一端(队头)进行的表。通过enqueue向队列中输入,通过dequeue从队列中输出。顺序实现如下:public class ArrayQueue { private AnyType theArray[]; private int front,back; //定义队头队尾 private in原创 2013-10-16 17:40:47 · 1074 阅读 · 0 评论 -
A计划--POJ2388 中位数
A题不分早晚,从今天开始好好学习算法,提高自己的逻辑思维能力,免得太怠惰。这道题就是一道求中位数的题,很简单,用快排就可以了import java.util.Scanner;public class Main { static int data[] = null; public static void sort(int left,int right){ if(left>原创 2017-11-06 13:05:34 · 416 阅读 · 0 评论