- 博客(9)
- 收藏
- 关注
原创 三种开启线程方式,并且进行线程同步,实现火车站卖票情景模拟
第一种方式 package offerPractical; //火车站卖票系统,使用runnable接口创建 public class trainStation1 implements Runnable { private static int ticket = 20; // private Object lock="lock"; @Override public void run(...
2019-09-25 10:45:28 673
原创 最好理解的快速排序递归实现
package QuickPai; public class QuickPai { //data为操作数组,start为从左开始的数组下标,end为从右到左的下标 public void quicklist(int[]data, int start,int end) { //上来先做判断 if(start>=end) { return; } int temp; ...
2019-09-25 09:43:10 208
原创 用两个栈实现队列的进队出队操作。
思路:一个栈用户存入入队操作,另一个用来反转,边界条件是,用于反转的栈必须为空。 package offerPractical; import java.util.Stack; //用两个栈实现队列的进队和出队操作 public class StackAndQueue { Stack<Integer> stack1 = new Stack<Integer>();//s...
2019-09-22 11:18:03 431
原创 (java)随意输入一串数字数组,生成二叉树,生成二叉树后经行遍历输出。再对原有二叉树进行反转,生成镜像二叉树(可运行)
主要用到递归思想,自己调用自己,第一个问题以来于第二问题的解决,第二个依赖于第三个。。。以此类推,当最后一个问题解决时,前面的问题都将解决。 设计二叉树类,其中左右子树属性是其本身类 package beans; import java.util.ArrayList; import java.util.List; public class binaryTree { private ...
2019-09-13 11:30:29 1778 3
转载 java对树的基本操作方法
基本操作:树的主要操作有 (1)创建树IntTree(&T) (2)销毁树DestroyTree(&T) (3)构造树CreatTree(&T,deinition) (4)置空树ClearTree(&T) (5)判空树TreeEmpty(T) (6)求树的深度TreeDepth(T) (7)获得树根Root(T) (8)获取结点Value(T,cur_e,&...
2019-09-12 18:11:41 673
原创 《剑指offer》构建乘积数组
题目:给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]。不能使用除法。 分析:假设素组A【1,2,3,4,5】,则数组B中的元素B【1】=2345,B【2】=1345…以此类推,A,B数组长度相同。 package offerPractical; import java.util.S...
2019-09-12 09:47:17 132
原创 定义栈的数据结构,在该类型中实现一个能够得到栈最小元素的min函数,且不破坏栈的原有结构,输出栈中最小值(可运行)
解析:先将栈顶元素赋值给mini变量,然后做一个判断,只要栈顶元素小于该值就将值赋给mini然后弹出,大于或者等于也弹出,弹出之前将值存放在list集合中,最后还原栈时,用Collection.reverse()函数对list进行反转(后进先出原则)。 package offerPractical; import java.util.ArrayList; import java.util.Col...
2019-09-11 00:12:35 265
原创 输入两个整数序列,第一个数组序列表示栈的压入顺序,判断第二个数组序列是否为该栈的弹出顺序(可运行)
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。 设计思路:用两层循环控制,外层循环用于数组入栈,内层循环用于对比栈顶元素是否与数组第一个元素相同。要用到两个函数Stack.push(),Stack.peek()和Stack.pop(),前者的作用是进栈操作和返回栈顶元素的值,后者是弹出栈顶元素,即是出栈。 package o...
2019-09-10 00:22:41 780 1
原创 和为s的两个数字算法实现(可直接运行)
题目:控制台输入一组无序数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 思路:先对数组进行冒泡升序排列,将满足和为S的两个数字存在hashmap中,由数学知识可知,和相同的几对值,相差越大乘积越小(如1和14,5和10,和都为15但是1乘14小于5乘以10)。故存入hashmap的第一组数即是结果.代码如下 package offer...
2019-09-09 00:38:03 211 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人