什么是AQS ReentrantLock的底层实现 支持尝试获取锁 支持重入 支持打断 支持多条件 支持公平锁和非公平锁 支持共享锁和排他锁 怎么做到的 使用了模板方法实现tryAcquire 子类Sync实现 通过CAS操作state的值,state为volatile修饰,线程可见 state为0 ...
分类:
其他好文 时间:
2020-06-17 20:00:10
阅读次数:
69
实现单链表基础操作 package linkedlist; import java.util.NoSuchElementException; import java.util.Stack; /** * 单链表 */ @SuppressWarnings("all") public class Sing ...
分类:
编程语言 时间:
2020-06-15 23:15:23
阅读次数:
97
一.顺序队列的改进 队列元素的出列是在队头,即下标为0的位置,那也就意味着,队列中的所有元素都得向前移动,以保证队列的队头(也就是下标为0的位置)不为空,此时的时间复杂度为0(n)。 可有时想想,为什么出队列时一定要全部移动呢,如果不去限制队列的元素必须存储在数组的前n个单元这一条件,出队的性能就会 ...
分类:
其他好文 时间:
2020-06-15 19:21:55
阅读次数:
93
不带头结点: typedef struct LNode { int data; struct LNode *next; }LNode,*LinkList; //初始化一个空的单链表 bool InitList(LinkList &L) { L = NULL; return true; } void ...
分类:
其他好文 时间:
2020-06-14 20:54:33
阅读次数:
71
对 HashMap 的一次扩展
(1) 容量200 Capacity = 200. ——> 静态数据,可提供设置.
(2) 最近操作(get/put)的元数,总放在最前. ——> 元素频繁位移,从效率考虑,用链表实现.
(3) 超过 Ca... ...
分类:
其他好文 时间:
2020-06-09 09:31:52
阅读次数:
51
ArrayList集合:底层是数组实现、查询快、增删慢。 LinkedList集合:底层是链表实现、查询慢、增删快。 1 package java.Internet; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 /** 7 ...
分类:
其他好文 时间:
2020-06-06 00:45:59
阅读次数:
54
#include <iostream> #include <algorithm> #include "MnistFile.cpp" #include <cmath> using namespace std; const int synapseNums = 800; class Node { publ ...
分类:
其他好文 时间:
2020-06-03 20:29:31
阅读次数:
53
//基于数组的队列实现 public class MyArrayQueue<T> { private T[] items; private int size; private int head; private int tail; public MyArrayQueue(int capacity) ...
分类:
编程语言 时间:
2020-05-29 09:43:37
阅读次数:
86
链式队列 链式队列,简称"链队列",即使用链表实现的队列存储结构。 结构体 struct Node{ DataType info; Node * next; }; typedef Node* PNode; struct LinkQueue{ PNode front; PNode rear; }; t ...
分类:
其他好文 时间:
2020-05-28 22:00:27
阅读次数:
83
今日一言:谢谢你,成为我前进的理由。——《言叶之庭》 数据结构 —— 约瑟夫环 这是用链表实现的,约瑟夫环的规则是:总数为N的同学围成一个圆环,并将这些同学从1开始编号,游戏开始时,约定好一个数字K,从1号同学开始轮着叫号,当叫到K号时,该同学淘汰,下一位同学从1开始重新叫号,只要叫到K号即淘汰,留 ...
分类:
其他好文 时间:
2020-05-24 23:59:31
阅读次数:
110