自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 哲学家就餐

来源:java编程思想是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 占有且等待:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3)不可强行占有:进程已获得的资源,在末使用完之前,不能强行剥夺。(4)循环等待条件:

2017-08-17 11:47:09 234

原创 BlockingQueue实现生产者消费者模式

阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。使用阻塞队列可以忽略同步问题,因为它们已经有BlockingQ

2017-08-17 11:43:32 277

原创 springIOC的简单实现

主要内容参考 http://www.cnblogs.com/fingerboy/p/5425813.htmlIoc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。即Spring管理对象生命周期及依赖关系程序中所有的Bean之间的

2017-08-17 09:48:31 198

转载 归并排序

归并排序package algorithm;import java.util.Arrays;public class MergeSort { private static int[] a={0,2,0,0,0,-1,0,0,0,0,0,-1}; public static void mergeArray(int left,int right){ if(left>right)

2017-05-22 19:50:55 163

转载 快速排序算法

快速排序package algorithm;import java.util.Arrays;public class QuickSort { private static int[] a={11,6,33,0,33,21,89,34,0,90,123,4,33,21}; public static void swap(int i,int j){ int temp=a[i];

2017-05-22 19:48:55 158

翻译 java构造器内部的多态方法

在构造器内部调用正在构造的某个对象的某个动态绑定方法。即在基类构造器中调用被子类覆盖的方法。所以此方法所操纵的某个成员可能还未进行初始化。解决该问题的办法在于:对象初始化首先会在其他任何事物发生之前,将分配给对象的存储空间初始化为二进制的零。public class A { public A(){ System.out.println("A before"); this.

2016-10-31 23:13:33 296

翻译 图的遍历

基于邻接表存储结点表示typedef struct node{ int vertex; //顶点值 struct node* next;}Node;Node graph[N];1.深度优先遍历(depth first search)首先访问结点v,并标记已被访问过,然后从v的邻接表中选取一个未被访问的顶点p,并从p开始继续进行深度优先遍历(递归实现)i

2016-07-20 23:55:52 189

翻译 线索二叉树

在二叉树的2n个链中,有n+1个空链。用线索即指向其他结点的指针来利用这些空链。1.左儿子为空,将指向左儿子的指针指向中序遍历的前驱结点2.右儿子为空,将指向右儿子的指针指向中序遍历的后继结点使用left_thread和right_thread来标记当前结点的左右指针指向线索还是左右儿子。结点结构如下:typedef struct node{ struct node *l

2016-06-02 20:45:01 298

翻译 二叉树的迭代后序遍历

一:1.将左结点入栈,直至左结点为空2.判断右结点(1)若右结点不为空且右结点未被访问过,则将右结点按照和左结点相同的规则入栈(2)若右结点为空或已被访问过,则将当前结点输出,出栈并进行标记**从分支再次进入循环,若从(1)进入,则继续入栈;若从(2)进入,则跳过入栈阶段,将当前栈顶置为当前结点void IteratorPrint(TreeNode *root){

2016-05-25 16:42:45 889

转载 贪心算法之装箱问题

装箱问题的贪心准则:1.将物品体积从大到小排列2.遍历箱子,将物品放入一个较早打开的且剩余空间足够的箱子,否则开新箱子结点类型:typedef struct goodnode{ int gno; int v;}Goods; //物品信息结点typedef struct GoodNode{ int gno; struct GoodNode *next;}G

2016-05-04 22:38:39 1340

转载 堆排序

1.堆排序是在完全二叉树的基础上进行的2.堆排序的步骤:   *将这个完全二叉树调整为一个大根堆(小根堆)   *交换最后一个结点和根结点数据域的值   *将最后一个结点排除在下一次的排序之中,即砍掉最后一个结点完全二叉树的创建(借助队列):BinaryNode* CreateBinaryTree(int a[],int n,BinaryNode** CT){ B

2016-05-01 23:34:17 174

转载 二叉查找树的创建及遍历

1.二叉查找树的创建(左比根小,右比根大)BinaryNode* CreateBinaryTree(int a[],int n){ //数据存在数组a中 int i; BinaryNode *root,*newp,*cp,*parent; //newp当前正在创建的结点,cp和parent寻找当前父结点 root=NULL; for(i=0;i<n;i++){

2016-05-01 23:11:20 256

转载 稀疏矩阵的十字链表存储

1.结点类型我们将结点分为两种类型,头结点和数据结点,头结点包含right,down和next域,数据结点包含right,down和entry域。right域将同一行的结点链接起来,down域将同一列的结点链接起来,next域将头结点链接起来。因此使用union共用体创建合适的结点结构。typedef struct entry_node{ int row; int co

2016-04-25 21:20:48 527

java web api

java web api 有java也有HTML css JavaScript等前端技术

2018-04-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除