package base.structure;

/**
* @program: Algorithm4J
* @description: 实现一个Stack
* @author: Mr.Dai
* @create: 2018-12-06 15:25
**/
public class Stack<T> { // point
int n;
// arrays implement
T [] elements; // 初始化一个栈
public Stack(){
n=0;
elements= ((T[]) new Object[20]);
} public void push(T item){
if(n==elements.length){
resize(elements.length*2);
}
elements[n++]=item;
} // 调控数组大小
private void resize(int i) {
T[] arrays=(T[])new Object[i];
System.arraycopy(elements,0,arrays,0,elements.length);
elements=arrays;
} public T pop(){
if(isEmpty()) throw new ArrayIndexOutOfBoundsException();
T x=elements[n-1];
n--;
return x;
}
public boolean isEmpty(){
return n==0;
}
public int Size(){return n;} }

队列

package base.structure;

/**
* @program: Algorithm4J
* @description: 实现队列
* @author: Mr.Dai
* @create: 2018-12-06 15:37
**/
public class Queue<T> { // tail point
private int tailp;
// head point
private int headp;
// save arrays
private T [] elements; public Queue(){
tailp=0;
elements=(T[])new Object[20];
} // 入队
public void enqueue(T item){
if(tailp==elements.length){
resize(elements.length*2);
}
elements[tailp++]=item;
}
// 调控数组大小
private void resize(int i) {
T[] arrays=(T[])new Object[i];
System.arraycopy(elements,0,arrays,0,elements.length);
elements=arrays;
}
// 出队
public T dequeue(){
if (isEmpty()) throw new ArrayIndexOutOfBoundsException();
T val=elements[headp];
headp++;
return val;
} boolean isEmpty(){
return headp==tailp;
} public int Size(){
return tailp-headp;
} }

Java 实现栈,队列的更多相关文章

  1. java 集合 Connection 栈 队列 及一些常用

    集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...

  2. 剑指Offer——Java实现栈和队列的互模拟操作

    剑指Offer--Java实现栈和队列的互模拟操作 栈模拟队列   题目:JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作.队列中的元素为int类型.   思路:其实就是把队列正常入 ...

  3. Java 容器之 Connection栈队列及一些常用

    集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...

  4. java面向对象的栈 队列 优先级队列的比较

    栈 队列 有序队列数据结构的生命周期比那些数据库类型的结构(比如链表,树)要短得多.在程序操作执行期间他们才被创建,通常用他们去执行某项特殊的任务:当完成任务之后,他们就会被销毁.这三个数据结构还有一 ...

  5. Java 技术栈

    JAVA是一个面向对象的编程语言,由SUN公司的程序员所开发.它不仅吸收了C++的各种优点,而且还撇弃了C++中难以理解的概念,如多继承.指针等:因此JAVA语言具有功能强大且简单易用两个特征, JA ...

  6. java技术栈:项目概述

    学习使用java到现在也有三年多了,这三年基本是以项目驱动的方式学习,有好有坏,个人觉得好处在于,有一个清晰的目标让你解决,这会让你学习非常迅速有效.当然坏处就是片面,不成体系.这种学习方式在学校以小 ...

  7. Ninja:Java全栈Web开发框架-Ninja中文网

    相信不少业界人士都还停留在SSh的时代 其实我想给大家推荐的一个轻量级框架那就是Ninja; Ninja是一个Java全栈Web开发框架,稳定.快速.非常高效. 商业价值 在你的下一个项目中,Ninj ...

  8. Java虚拟机栈和本地方法栈

    Java虚拟机栈的特征 线程私有 后进先出(LIFO)栈 存储栈帧,支持Java方法的调用.执行和退出 可能出现OutOfMemoryError异常和StackOverflowError异常 Java ...

  9. Java实现栈之计算器

    Java实现栈来做一个将中缀表达式转化为后缀表达式的程序,中缀表达式更符合我们的主观感受,后缀表达式更适合计算机的运算,下面直接上代码吧: package Character1; import jav ...

  10. Java多线程 阻塞队列和并发集合

    转载:大关的博客 Java多线程 阻塞队列和并发集合 本章主要探讨在多线程程序中与集合相关的内容.在多线程程序中,如果使用普通集合往往会造成数据错误,甚至造成程序崩溃.Java为多线程专门提供了特有的 ...

随机推荐

  1. 删除CentOS系统自带的jdk

    转自:https://www.cnblogs.com/linjiqin/archive/2013/03/23/2977377.html 在安装CentOS6.4时,系统会自动安装jdk,先把它下载掉, ...

  2. win 10 提升权限

    问题:每次打开Visual Studio 提示,需要重启以获取管理员权限 解决: 1.Win+R 2.输入:gpedit.msc 3.windows设置->安全设置->本地策略->安 ...

  3. C语言学习笔记--指针概念

    指针也是一种变量,占有内存空间,用来保存内存地址,在32位系统中指针的占用的内存大小为4个字节 1.*号的意义 (1)在指针声明时,*号表示所声明的变量为指针 (2)在指针使用时,*号表示取指针所指向 ...

  4. Github修改项目显示的语言类型

    //仓库的根目录下创建 .gitattributes 文件,添加以下代码: *.js linguist-language=java *.css linguist-language=java *.htm ...

  5. js实现导航栏的吸顶操作

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  6. Java元注解,简单案例

    [注解] 程序中有 注释 和注解 * 注释:给开发人员. * 注解:给计算机看的. 注解使用:学习框架支持注解开发. [JDK提供的注解] @Override :描述方法的重写. @SuppressW ...

  7. parseXXX的用法

    转换字符串. parseXXX是Integer类.等基本数据类型包装类的方法,用于实现String和int型数据的转换.例如, Integer.getInteger(String s) 从字符串中获取 ...

  8. hdu4283 You Are the One

    传送门 题目 The TV shows such as You Are the One has been very popular. In order to meet the need of boys ...

  9. WOJ 7 智商

    感觉Dasin去年的毒瘤题质量都挺好的,果然还是我太菜了. 以下假设划横线部分都相等,字符$c$代表一个小写字母. 分类讨论: $#1$ 先考虑$n == m$的情况 : $#1.1 :$ A:   ...

  10. Fiddler的Request Builder(Composer)模拟发送POST请求

    传json格式: Parsed写: User-Agent: Fiddler Host: localhost:1455 Content-Type: application/json; charset=u ...