数据结构与算法
zhaojianyin
runing
展开
-
汉诺塔问题
汉诺塔问题问题描述: 有一个梵塔,塔内有三个座A、B、C,A座上有诺干个盘子,盘子大小不等,大的在下,小的在上(如图)。把这些个盘子从A座移到C座,中间可以借用B座但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。描述简化:把A柱上的n个盘子移动到C柱,其中可以借用B柱递归思路:当只有一个盘子的时候,只需要从将A塔上的一个盘子移到C塔上。原创 2017-04-07 08:56:36 · 735 阅读 · 0 评论 -
算法系列之-先序遍历实现二叉树的序列化和反序列话
package it.tree; import java.util.LinkedList; import java.util.Queue; /** * @项目名称:util * @类名称:SerailTree @类描述: 二叉树的序列化和反序列话 * * @author 赵建银 * @date 2018年1月4日 * @time 下午7:02:35 * @version 1.0原创 2018-01-06 21:43:29 · 416 阅读 · 0 评论 -
算法系列之-获取窗口最大值
import java.util.LinkedList; /** * @项目名称:util * @类名称:MaxWindow * @类描述:获取窗口的最大值,整形数组【4,3,5,4,3,3,6,7】 * ,窗口大小为3,向右滑动,找到每次滑动的窗口的最大值 * @思路: * 使用双端队列,存放数组下标。队列为空将数组下原创 2018-01-08 17:03:24 · 678 阅读 · 0 评论 -
算法系列之-互为变形词
package it.string; /** * @项目名称:util * @类名称:Deformation * @类描述: 互为变形词,字母种类和个数相同 * * @author 赵建银 * @date 2018年1月9日 * @time 下午7:56:54 * @version 1.0 */ public class Deformation { public原创 2018-01-10 09:03:08 · 366 阅读 · 0 评论 -
算法系列之-链表反转和链表部分反转
反转链表 package it.list; /** * @项目名称:util * @类名称:Fanzhuan @类描述:反转链表 * @version 1.0 */ public class Fanzhuan { public static Node fanzhuanlist(Node head) { Node pre = null; Node原创 2018-01-17 19:40:14 · 322 阅读 · 0 评论 -
算法系列之-删除和当前数字相同的节点
package it.list; import java.util.Stack; /** * @项目名称:util * @类名称:DelNum @类描述:删除和当前数字相同的节点 * * @author 赵建银 * @date 2018年1月24日 * @time 下午6:28:12 * @version 1.0 */ public class DelNum { pu原创 2018-01-25 10:22:11 · 223 阅读 · 0 评论 -
算法系列之-删除重复出现的节点
package it.list; import java.util.HashSet; import java.util.Set; /** * @项目名称:util * @类名称:DelNode @类描述:删除重复出现的节点 * * @author 赵建银 * @date 2018年1月25日 * @time 上午9:41:58 * @version 1.0 */ public原创 2018-01-25 10:20:47 · 1046 阅读 · 0 评论 -
算法系列之-复制含有随机指针的链表
package it.list; import java.util.HashMap; import java.util.Map; /** * @项目名称:util * @类名称:RandNode @类描述:随机指针复制 */ public class RandNode { public static RNode copyList(RNode rNode) {原创 2018-01-25 10:18:31 · 202 阅读 · 0 评论 -
算法系列之-两个链表是否相交
package it.list; /** * @项目名称:util * @类名称:Huan @类描述:判断两个链表是否有交点 * * @author 赵建银 * @date 2018年1月23日 * @time 下午8:05:19 * @version 1.0 */ public class Huan { /** * @param head * @retu原创 2018-01-24 13:15:15 · 221 阅读 · 0 评论 -
算法系列之-替换连续的字符
/** * @项目名称:util * @类名称:ReplaceString @类描述:替换连续出现的字符串 思路: 将连续出现的字符位置设置为空,将为空的地方设置为要替换的字符 * * @author 赵建银 * @date 2018年1月10日 * @time 下午7:06:47 * @version 1.0 */ public class ReplaceString {原创 2018-01-11 13:40:58 · 526 阅读 · 0 评论 -
算法系列之-栈实现栈的排序
import java.util.Stack;/** * @项目名称:util * @类名称:SortStackByStackk @类描述: 用一个栈实现对另一个栈的排序,满足 两个要求即可1.没每次进帮助栈之前帮助站内没有数据,2.每次全部进栈。 * * @author 赵建银 * @date 2017年12月27日 * @time 下午9:03:44 * @version 1.0原创 2018-01-02 11:00:50 · 309 阅读 · 0 评论 -
算法系列之-猫狗队列
package it.stack;import java.util.LinkedList; import java.util.Queue;/** * @项目名称:util * @类名称:DogCatQueue @类描述: 猫狗队列,实现的方法有添加,猫出,狗出,是否为空,等。 * * @author 赵建银 * @date 2017年12月27日 * @time 下午6:08:03 *原创 2018-01-02 10:58:22 · 430 阅读 · 0 评论 -
算法系列之-两个栈实现队列
package it.stack;import java.util.Stack;/** * @项目名称:util * @类名称:TwoStacksQueue @类描述: * 用两个栈实现一个队列,支持队列的基本操作(add,poll,peek)。思路:把两个栈的顺序反过来,一个作为压入栈,一个作为弹出栈。全部压入压入栈之后,在讲压入栈的数据压入弹出站。原创 2017-12-26 16:01:51 · 189 阅读 · 0 评论 -
算法系列之-实现返回最小值的栈
import java.util.Stack;/** * @类名称:Mystack -思路: * 使用两个栈,一个栈用来存放当前栈中 * 的数据,功能类似正常的栈,StackData;第二个栈用于保存每一步的最小值。StackMin * @author 赵建银 * @date 2017年12月26日 * @time 下午12:49:42原创 2017-12-26 15:46:40 · 242 阅读 · 0 评论 -
MD5加密
MD5加密实现MD5加密技术,将要加密的字符串个传入即返回加密后的结果public static String MD5(String key) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'原创 2017-11-08 17:26:04 · 312 阅读 · 0 评论 -
java 回文数
java 回文数import java.util.Scanner;/** * @项目名称:day03 * @类名称:Test06 * @类描述: 回文数判断,输入数字的位数为奇数位 * * @author 赵建银-邮箱:384144795@qq.com * @date 创建时间:2017-6-21 上午8:48:11 * @version 1.0 * @parameter * @原创 2017-06-21 09:15:01 · 516 阅读 · 0 评论 -
快速排序
快速排序 /** * 快速排序 * * 找一个基准点,将比基准点小的,放在基准点的左面,将比基准点大的放在基准点的右面。 按此方法递归进行。 * */ public class QuickSort { public static void main(String[] args) { int a[] = { 5, 2, 6, 0, 3, 9, 1, 7, 4, 8原创 2017-04-11 14:18:42 · 262 阅读 · 0 评论 -
归并排序
归并排序//递归实现 public class MegerSort { public static void main(String[] args) { int a[] = { 5, 2, 6, 0, 3, 9, 1, 7, 4, 8 }; System.out.println("排序前的数组"); for (int i = 0; i < a.原创 2017-04-11 14:17:04 · 343 阅读 · 0 评论 -
算法系列之-字符串统计字符串
package it.string; /** * @项目名称:util * @类名称:CountString @类描述: 字符串统计字符串 * * @author 赵建银 * @date 2018年1月10日 * @time 下午12:56:41 * @version 1.0 */ public class CountString { /** * @param原创 2018-01-10 19:05:29 · 638 阅读 · 0 评论