- 浏览: 3438551 次
- 性别:
- 来自: China
文章分类
- 全部博客 (536)
- ajax (1)
- Algorithm (14)
- Android (40)
- CSS/HTML... (2)
- defy (3)
- DesignPattern (2)
- dorado (0)
- Drools (6)
- English/日本語 (7)
- Flex (2)
- Framework (0)
- Google (3)
- hibernate (13)
- homework (3)
- HTML5 (0)
- IDE (29)
- java (45)
- javaee (7)
- Javascript (14)
- java组件 (5)
- jQuery (4)
- jsp (8)
- jsf (2)
- Linux (2)
- lucene (0)
- mysql (6)
- news (3)
- Oracle (8)
- other (4)
- PHP (5)
- Python (0)
- Software Engineering (3)
- spring (7)
- struts1.x (14)
- struts2.x (14)
- strolling in cloud (1)
- subject:javaEnhance (20)
- Tomcat (7)
- validator (3)
- 学习·方法·心得 (8)
- .NET (2)
- vba (6)
- groovy (5)
- grails (2)
- SWT (0)
- big data (1)
- perl (1)
- objective-c (50)
- product (1)
- mac (7)
- ios (188)
- ios-phone (2)
- ios-system (15)
- ios-network (5)
- ios-file (4)
- ios-db (1)
- ios-media (3)
- ios-ui (27)
- ios-openSource (6)
- ios-animation (5)
- ios-drawing (7)
- c (2)
- ios-app (2)
- ios-course (15)
- ios-runtime (14)
- ios-code (8)
- ios-thread (8)
- ios-LBS (2)
- ios-issue (1)
- ios-design (2)
- Jailbreak (2)
- cocos2d (0)
- swift (16)
- ios-framework (4)
- apple watch (4)
- ios-web (1)
- react native (3)
- TVOS (1)
- OpenGL (1)
最新评论
-
xiaobinggg:
...
Session机制详解 -
菜鸟学生会:
Drools规则工作流引擎开发教程网盘地址:http://pa ...
Drools入门-----------环境搭建,分析Helloworld -
wangyudong:
不是很好用,不支持自动化测试RESTful API,也不支持自 ...
Simple REST Client POST使用方法 -
Paul0523:
很棒的一篇文章,感谢楼主分享
Session机制详解 -
啸笑天:
获取原型对象的三种方法<script>functi ...
复习JavaScript面向对象技术
顺序栈的实现
import java.util.Arrays; public class SequenceStack<T> { private int DEFAULT_SIZE = 10; //保存数组的长度。 private int capacity; //定义当底层数组容量不够时,程序每次增加的数组长度 private int capacityIncrement = 0; //定义一个数组用于保存顺序栈的元素 private Object[] elementData; //保存顺序栈中元素的当前个数 private int size = 0; //以默认数组长度创建空顺序栈 public SequenceStack() { capacity = DEFAULT_SIZE; elementData = new Object[capacity]; } //以一个初始化元素来创建顺序栈 public SequenceStack(T element) { this(); elementData[0] = element; size++; } /** * 以指定长度的数组来创建顺序栈 * @param element 指定顺序栈中第一个元素 * @param initSize 指定顺序栈底层数组的长度 */ public SequenceStack(T element , int initSize) { this.capacity = initSize; elementData = new Object[capacity]; elementData[0] = element; size++; } /** * 以指定长度的数组来创建顺序栈 * @param element 指定顺序栈中第一个元素 * @param initSize 指定顺序栈底层数组的长度 * @param capacityIncrement 指定当顺序栈底层数组的长度不够时,底层数组每次增加的长度 */ public SequenceStack(T element , int initSize , int capacityIncrement) { this.capacity = initSize; this.capacityIncrement = capacityIncrement; elementData = new Object[capacity]; elementData[0] = element; size++; } //获取顺序栈的大小 public int length() { return size; } //入栈 public void push(T element) { ensureCapacity(size + 1); elementData[size++] = element; } //很麻烦,而且性能很差 private void ensureCapacity(int minCapacity) { //如果数组的原有长度小于目前所需的长度 if (minCapacity > capacity) { if (capacityIncrement > 0) { while (capacity < minCapacity) { //不断地将capacity长度加capacityIncrement, //直到capacity大于minCapacity为止 capacity += capacityIncrement; } } else { //不断地将capacity * 2,直到capacity大于minCapacity为止 while (capacity < minCapacity) { capacity <<= 1; } } elementData = Arrays.copyOf(elementData , capacity); } } //出栈 public T pop() { T oldValue = (T)elementData[size - 1]; //释放栈顶元素 elementData[--size] = null; return oldValue; } //返回栈顶元素,但不删除栈顶元素 public T peek() { return (T)elementData[size - 1]; } //判断顺序栈是否为空栈 public boolean empty() { return size == 0; } //清空顺序栈 public void clear() { //将底层数组所有元素赋为null Arrays.fill(elementData , null); size = 0; } public String toString() { if (size == 0) { return "[]"; } else { StringBuilder sb = new StringBuilder("["); for (int i = size - 1 ; i > -1 ; i-- ) { sb.append(elementData[i].toString() + ", "); } int len = sb.length(); return sb.delete(len - 2 , len).append("]").toString(); } } public static void main(String[] args) { SequenceStack<String> stack = new SequenceStack<String>(); //不断地入栈 stack.push("aaaa"); stack.push("bbbb"); stack.push("cccc"); stack.push("dddd"); System.out.println(stack); //访问栈顶元素 System.out.println("访问栈顶元素:" + stack.peek()); //弹出一个元素 System.out.println("第一次弹出栈顶元素:" + stack.pop()); //再次弹出一个元素 System.out.println("第二次弹出栈顶元素:" + stack.pop()); System.out.println("两次pop之后的栈:" + stack); } }
链式栈的实现
public class LinkStack<T> { //定义一个内部类Node,Node实例代表链栈的节点。 private class Node { //保存节点的数据 private T data; //指向下个节点的引用 private Node next; //无参数的构造器 public Node() { } //初始化全部属性的构造器 public Node(T data , Node next) { this.data = data; this.next = next; } } //保存该链栈的栈顶元素 private Node top; //保存该链栈中已包含的节点数 private int size; //创建空链栈 public LinkStack() { //空链栈,top的值为null top = null; } //以指定数据元素来创建链栈,该链栈只有一个元素 public LinkStack(T element) { top = new Node(element , null); size++; } //返回链栈的长度 public int length() { return size; } //进栈 public void push(T element) { //让top指向新创建的元素,新元素的next引用指向原来的栈顶元素 top = new Node(element , top); size++; } //出栈 public T pop() { Node oldTop = top; //让top引用指向原栈顶元素的下一个元素 top = top.next; //释放原栈顶元素的next引用 oldTop.next = null; size--; return oldTop.data; } //访问栈顶元素,但不删除栈顶元素 public T peek() { return top.data; } //判断链栈是否为空栈 public boolean empty() { return size == 0; } //清空链栈 public void clear() { //将底层数组所有元素赋为null top = null; size = 0; } public String toString() { //链栈为空链栈时 if (empty()) { return "[]"; } else { StringBuilder sb = new StringBuilder("["); for (Node current = top ; current != null ; current = current.next ) { sb.append(current.data.toString() + ", "); } int len = sb.length(); return sb.delete(len - 2 , len).append("]").toString(); } } public static void main(String[] args) { LinkStack<String> stack = new LinkStack<String>(); //不断地入栈 stack.push("aaaa"); stack.push("bbbb"); stack.push("cccc"); stack.push("dddd"); System.out.println(stack); //访问栈顶元素 System.out.println("访问栈顶元素:" + stack.peek()); //弹出一个元素 System.out.println("第一次弹出栈顶元素:" + stack.pop()); //再次弹出一个元素 System.out.println("第二次弹出栈顶元素:" + stack.pop()); System.out.println("两次pop之后的栈:" + stack); } }
顺序队列的实现
import java.util.Arrays; public class SequenceQueue<T> { private int DEFAULT_SIZE = 10; //保存数组的长度。 private int capacity; //定义一个数组用于保存顺序队列的元素 private Object[] elementData; //保存顺序队列中元素的当前个数 private int front = 0; private int rear = 0; //以默认数组长度创建空顺序队列 public SequenceQueue() { capacity = DEFAULT_SIZE; elementData = new Object[capacity]; } //以一个初始化元素来创建顺序队列 public SequenceQueue(T element) { this(); elementData[0] = element; rear++; } /** * 以指定长度的数组来创建顺序队列 * @param element 指定顺序队列中第一个元素 * @param initSize 指定顺序队列底层数组的长度 */ public SequenceQueue(T element , int initSize) { this.capacity = initSize; elementData = new Object[capacity]; elementData[0] = element; rear++; } //获取顺序队列的大小 public int length() { return rear - front; } //插入队列 public void add(T element) { if (rear > capacity - 1) { throw new IndexOutOfBoundsException("队列已满的异常"); } elementData[rear++] = element; } //移除队列 public T remove() { if (empty()) { throw new IndexOutOfBoundsException("空队列异常"); } //保留队列的rear端的元素的值 T oldValue = (T)elementData[front]; //释放队列的rear端的元素 elementData[front++] = null; return oldValue; } //返回队列顶元素,但不删除队列顶元素 public T element() { if (empty()) { throw new IndexOutOfBoundsException("空队列异常"); } return (T)elementData[front]; } //判断顺序队列是否为空队列 public boolean empty() { return rear == front; } //清空顺序队列 public void clear() { //将底层数组所有元素赋为null Arrays.fill(elementData , null); front = 0; rear = 0; } public String toString() { if (empty()) { return "[]"; } else { StringBuilder sb = new StringBuilder("["); for (int i = front ; i < rear ; i++ ) { sb.append(elementData[i].toString() + ", "); } int len = sb.length(); return sb.delete(len - 2 , len).append("]").toString(); } } public static void main(String[] args) { SequenceQueue<String> queue = new SequenceQueue<String>(); //依次将4个元素加入队列 queue.add("aaaa"); queue.add("bbbb"); queue.add("cccc"); queue.add("dddd"); System.out.println(queue); System.out.println("访问队列的front端元素:" + queue.element()); System.out.println("移除队列的front端元素:" + queue.remove()); System.out.println("移除队列的front端元素:" + queue.remove()); System.out.println("两次调用remove方法后的队列:" + queue); } }
循环队列的实现
import java.util.Arrays; public class LoopQueue<T> { private int DEFAULT_SIZE = 10; //保存数组的长度。 private int capacity; //定义一个数组用于保存循环队列的元素 private Object[] elementData; //保存循环队列中元素的当前个数 private int front = 0; private int rear = 0; //以默认数组长度创建空循环队列 public LoopQueue() { capacity = DEFAULT_SIZE; elementData = new Object[capacity]; } //以一个初始化元素来创建循环队列 public LoopQueue(T element) { this(); elementData[0] = element; rear++; } /** * 以指定长度的数组来创建循环队列 * @param element 指定循环队列中第一个元素 * @param initSize 指定循环队列底层数组的长度 */ public LoopQueue(T element , int initSize) { this.capacity = initSize; elementData = new Object[capacity]; elementData[0] = element; rear++; } //获取循环队列的大小 public int length() { if (empty()) { return 0; } return rear > front ? rear - front : capacity - (front - rear); } //插入队列 public void add(T element) { if (rear == front && elementData[front] != null) { throw new IndexOutOfBoundsException("队列已满的异常"); } elementData[rear++] = element; //如果rear已经到头,那就转头 rear = rear == capacity ? 0 : rear; } //移除队列 public T remove() { if (empty()) { throw new IndexOutOfBoundsException("空队列异常"); } //保留队列的rear端的元素的值 T oldValue = (T)elementData[front]; //释放队列的rear端的元素 elementData[front++] = null; //如果front已经到头,那就转头 front = front == capacity ? 0 : front; return oldValue; } //返回队列顶元素,但不删除队列顶元素 public T element() { if (empty()) { throw new IndexOutOfBoundsException("空队列异常"); } return (T)elementData[front]; } //判断循环队列是否为空队列 public boolean empty() { //rear==front且rear处的元素为null return rear == front && elementData[rear] == null; } //清空循环队列 public void clear() { //将底层数组所有元素赋为null Arrays.fill(elementData , null); front = 0; rear = 0; } public String toString() { if (empty()) { return "[]"; } else { //如果front < rear,有效元素就是front到rear之间的元素 if (front < rear) { StringBuilder sb = new StringBuilder("["); for (int i = front ; i < rear ; i++ ) { sb.append(elementData[i].toString() + ", "); } int len = sb.length(); return sb.delete(len - 2 , len).append("]").toString(); } //如果front >= rear,有效元素为front->capacity之间、0->front之间的 else { StringBuilder sb = new StringBuilder("["); for (int i = front ; i < capacity ; i++ ) { sb.append(elementData[i].toString() + ", "); } for (int i = 0 ; i < rear ; i++) { sb.append(elementData[i].toString() + ", "); } int len = sb.length(); return sb.delete(len - 2 , len).append("]").toString(); } } } public static void main(String[] args) { LoopQueue<String> queue = new LoopQueue<String>("aaaa" , 3); //添加两个元素 queue.add("bbbb"); queue.add("cccc"); //此时队列已满 System.out.println(queue); //删除一个元素后,队列可以再多加一个元素 queue.remove(); System.out.println("删除一个元素后的队列:" + queue); //再次添加一个元素,此时队列又满 queue.add("dddd"); System.out.println(queue); System.out.println("队列满时的长度:" + queue.length()); //删除一个元素后,队列可以再多加一个元素 queue.remove(); //再次加入一个元素,此时队列又满 queue.add("eeee"); System.out.println(queue); } }
链式队列的实现
public class LinkQueue<T> { //定义一个内部类Node,Node实例代表链队列的节点。 private class Node { //保存节点的数据 private T data; //指向下个节点的引用 private Node next; //无参数的构造器 public Node() { } //初始化全部属性的构造器 public Node(T data , Node next) { this.data = data; this.next = next; } } //保存该链队列的头节点 private Node front; //保存该链队列的尾节点 private Node rear; //保存该链队列中已包含的节点数 private int size; //创建空链队列 public LinkQueue() { //空链队列,front和rear都是null front = null; rear = null; } //以指定数据元素来创建链队列,该链队列只有一个元素 public LinkQueue(T element) { front = new Node(element , null); //只有一个节点,front、rear都指向该节点 rear = front; size++; } //返回链队列的长度 public int length() { return size; } //将新元素加入队列 public void add(T element) { //如果该链队列还是空链队列 if (front == null) { front = new Node(element , null); //只有一个节点,front、rear都指向该节点 rear = front; } else { //创建新节点 Node newNode = new Node(element , null); //让尾节点的next指向新增的节点 rear.next = newNode; //以新节点作为新的尾节点 rear = newNode; } size++; } //删除队列front端的元素 public T remove() { Node oldFront = front; front = front.next; oldFront.next = null; size--; return oldFront.data; } //访问链式队列中最后一个元素 public T element() { return rear.data; } //判断链式队列是否为空队列 public boolean empty() { return size == 0; } //清空链队列 public void clear() { //将front、rear两个节点赋为null front = null; rear = null; size = 0; } public String toString() { //链队列为空链队列时 if (empty()) { return "[]"; } else { StringBuilder sb = new StringBuilder("["); for (Node current = front ; current != null ; current = current.next ) { sb.append(current.data.toString() + ", "); } int len = sb.length(); return sb.delete(len - 2 , len).append("]").toString(); } } public static void main(String[] args) { LinkQueue<String> queue = new LinkQueue<String>("aaaa"); //添加两个元素 queue.add("bbbb"); queue.add("cccc"); System.out.println(queue); //删除一个元素后 queue.remove(); System.out.println("删除一个元素后的队列:" + queue); //再次添加一个元素 queue.add("dddd"); System.out.println("再次添加元素后的队列:" + queue); //删除一个元素后,队列可以再多加一个元素 queue.remove(); //再次加入一个元素 queue.add("eeee"); System.out.println(queue); } }
发表评论
-
qweqwe
2012-07-11 16:06 1江蛤蟆 一统江湖 -
123123123
2012-07-11 16:04 0<p>法轮</p> -
母牛繁殖问题
2011-12-30 13:08 3839question:农场的母牛寿命是5年,母牛第二年和第四年会繁 ... -
树形显示
2011-07-17 11:26 1642/** 树形结构应用十分广泛。 下面这段代码根据 ... -
求能除尽1至n的最小整数
2011-07-16 02:43 3959为什么1小时有60分钟,而不是100分钟呢?这是历史上的 ... -
java 四则运算 栈的实现
2011-07-15 13:42 13845import java.util.Stack; /* ... -
用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。
2011-07-15 12:45 3379用1、2、3、3、4、5这六 ... -
【code】java红黑树
2011-06-28 10:07 3449import java.util.*; publi ... -
【code】java实现排序二叉树
2011-06-27 21:45 2863import java.util.*; publi ... -
【code】java创建哈夫曼树和实现哈夫曼编码
2011-06-27 17:31 12882创建哈夫曼树 主要思想: (1)对List集合中所有节点进 ... -
【code】java实现十种常见内部排序
2011-06-20 19:22 3082常见的内部排序: 下面介绍这十种常见内部排序(都是从 ... -
【code】java二叉树深(先中后)、广遍历
2011-06-19 16:55 1958import java.util.*; publi ... -
【code】java二叉树的实现
2011-06-17 22:50 5850二叉树的顺序存储 public class Array ... -
【code】java树的实现
2011-06-17 22:20 11953树的父节点存储实现 import java.util. ... -
【code】java线性表实现
2011-06-16 21:24 3667顺序线性表的实现 import java.util.A ...
相关推荐
Java code Java code Java code Java code Java code Java code Java code
STC12C5A通过GPS模块获取当前定位信息,如果车辆发生异常震动或车主打来电话(主动请求定位),将通过GSM发送一条定位短信到车主手机,车主点击链接默认打开网页版定位,如果有安装高德地图APP将在APP中打开并展示汽车当前位置 GPS模块可以使用多家的GPS模块,需要注意的是,当前程序对应的是GPS北斗双模芯片,故只解析 GNRMC数据,如果你使用GPS芯片则应改为GPRMC数据即可。 系统在初始化的时候会持续短鸣,每初始化成功一部分后将长鸣一声,如果持续短鸣很久(超过20分钟),建议通过串口助手查看系统输出的调试信息,系统串口默认输出从初始化开始的所有运行状态信息。 不过更建议你使用SIM868模块,集成GPS.GSM.GPRS,使用更加方便
基于tensorflow2.x卷积神经网络字符型验证码识别 卷积神经网络(Convolutional Neural Networks, CNNs 或 ConvNets)是一类深度神经网络,特别擅长处理图像相关的机器学习和深度学习任务。它们的名称来源于网络中使用了一种叫做卷积的数学运算。以下是卷积神经网络的一些关键组件和特性: 卷积层(Convolutional Layer): 卷积层是CNN的核心组件。它们通过一组可学习的滤波器(或称为卷积核、卷积器)在输入图像(或上一层的输出特征图)上滑动来工作。 滤波器和图像之间的卷积操作生成输出特征图,该特征图反映了滤波器所捕捉的局部图像特性(如边缘、角点等)。 通过使用多个滤波器,卷积层可以提取输入图像中的多种特征。 激活函数(Activation Function): 在卷积操作之后,通常会应用一个激活函数(如ReLU、Sigmoid或tanh)来增加网络的非线性。 池化层(Pooling Layer): 池化层通常位于卷积层之后,用于降低特征图的维度(空间尺寸),减少计算量和参数数量,同时保持特征的空间层次结构。 常见的池化操作包括最大池化(Max Pooling)和平均池化(Average Pooling)。 全连接层(Fully Connected Layer): 在CNN的末端,通常会有几层全连接层(也称为密集层或线性层)。这些层中的每个神经元都与前一层的所有神经元连接。 全连接层通常用于对提取的特征进行分类或回归。 训练过程: CNN的训练过程与其他深度学习模型类似,通过反向传播算法和梯度下降(或其变种)来优化网络参数(如滤波器权重和偏置)。 训练数据通常被分为多个批次(mini-batches),并在每个批次上迭代更新网络参数。 应用: CNN在计算机视觉领域有着广泛的应用,包括图像分类、目标检测、图像分割、人脸识别等。 它们也已被扩展到处理其他类型的数据,如文本(通过卷积一维序列)和音频(通过卷积时间序列)。 随着深度学习技术的发展,卷积神经网络的结构和设计也在不断演变,出现了许多新的变体和改进,如残差网络(ResNet)、深度卷积生成对抗网络(DCGAN)等。
【三维装箱】遗传和模拟退火算法求解三维装箱优化问题【含Matlab源码 031期】.zip
cpk&ppk python 小程序,品友点评
基于springboot的java毕业&课程设计
课设毕设基于SpringBoot+Vue的影城管理系统 LW+PPT+源码可运行.zip
MC教育版(免登录版)
包含13993张数据和对应的13993张mask分割模版,数据集用不同目录保存,也可以用作分类数据集 类别包含:桃子、辣椒、覆盆子、大豆、南瓜、草莓
基于springboot的java毕业&课程设计
【三维装箱】遗传算法求解三维装箱优化问题【含Matlab源码 3408期】.zip
基于javaspring 开发框架的培训教程 TP1.zip
1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
医院网上预约系统设计与开发/毕业设计 JSP基于SSM网上医院预约挂号系统 科室信息: 科室id,科室名称,科室介绍,成立日期,负责人 医生信息: 医生工号,登录密码,所在科室,医生姓名,性别,医生照片,出生日期,医生职位,工作经验,联系方式,擅长,医生介绍 病人信息: 病人id,医生,病人姓名,性别,身份证号,联系电话,病人病例,登记时间 预约信息: 预约id,预约用户,预约医生,预约日期,时段,联系电话,下单时间,处理状态,医生回复 新闻信息: 新闻id,新闻标题,新闻图片,新闻内容,新闻日期,新闻来源 留言: 留言id,留言标题,留言内容,留言人,留言时间,管理回复,回复时间 用户: 用户名,登录密码,姓名,性别,出生日期,用户照片,联系电话,邮箱,家庭地址,注册时间
企业数据治理之数据质量治理方案
MySQL8.4.0 LTS(mysql-8.4.0-10.fc38.x86_64.rpm-bundle.tar)适用于Linux Fedora 38 (x86, 64-bit)
一、源码特点 java 医疗数据管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助采用了数据模型进行区块链设计,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使用java语言开发。 二、功能介绍 如博客中介绍 三、注意事项 1、管理员账号:admin 密码:admin 数据库配置文件DBO.java ,权限包括管理员,用户 2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使用java语言开发。 3、数据库文件名是jspyly 系统名称yly 4、地址:http://127.0.0.1:8080/yly/qt/index.jsp
基于springboot的java毕业&课程设计
可运行源码(含数据库脚本)+开发文档+lw(高分毕设项目) java期末大作业毕业设计项目管理系统计算机软件工程大数据专业 内容概要:通过陆丰市医院门诊分诊系统设计的研究背景、研究的意义和目的,通过运用java语言和ssm框架来建立一款分诊管理系统,能够帮助医院提高工作效率,减少工作中出现的错误率。设计出挂号管理、排队候诊管理以及叫号管理等多个子模块,绘制出实体关系图,利用MySQL技术建立数据库达成了软件与数据库的互通。最后对工作进行了总结和展望。 关键词:分诊管理系统;功能建模;java 全套项目源码+详尽文档,一站式解决您的学习与项目需求。 适用人群: 计算机、通信、人工智能、自动化等专业的学生、老师及从业者。 使用场景及目标: 无论是毕设、期末大作业还是课程设计,一键下载,轻松部署,助您轻松完成项目。 项目代码经过调试测试,确保直接运行,节省您的时间和精力。 其他说明: 项目整体具有较高的学习借鉴价值,基础能力强的可以在此基础上修改调整,以实现不同的功能。