数组实现的堆栈:ArrayStack.java
public class ArrayStack {
Object[] m_elements;
int m_size;
public ArrayStack(int len) {
m_elements = new Object[len];
m_size = 0;
}
public ArrayStack() {
this(50);
}
// insert onto stack
public void push(Object element) {
m_elements[m_size] = element;
m_size++;
}
// return and remove the top element
public Object pop() {
if (!this.isEmpty()) {
Object obj = m_elements[m_size - 1];
m_elements[m_size - 1] = null;
m_size--;
return obj;
} else {
return null;
}
}
// return the top element
public Object top() {
if (!this.isEmpty()) {
return m_elements[m_size - 1];
} else {
return null;
}
}
// return 1 --> is empty
// return 0 --> is not empty
public boolean isEmpty() {
return this.size() == 0;
}
public int size() {
return m_size;
}
}
使用链表实现(单链表) :
public class Stacklist {
Node m_header;
int m_size;
public ListStack() {
m_header = null;
m_size = 0;
}
public void push(Object value) {
m_header = new Node(value, m_header);
}
public Object pop() {
if (!this.isEmpty()) {
throw new RuntimeException("Stack underflow");
}
Object obj = m_header.element;
m_header = m_header.next;
return obj;
}
// return reference to most recently added elemenet
public Object peek() {
if (!this.isEmpty()) {
throw new RuntimeException("Stack underflow");
}
return m_header.element;
}
public boolean isEmpty() {
return this.size() == 0;
}
//return the number of the queue's elements;
public int size() {
return m_size;
}
}
链表的需要用到一个结点类 Node.java 代码如下
public class Node {
Object element;
Node next;
public Node(Object theElement) {
this(theElement, null);
}
public Node(Object theElement, Node n) {
element = theElement;
next = n;
}
public Object getElement() {
return element;
}
public void setElement(Object element) {
this.element = element;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
分享到:
相关推荐
Java写的一个进栈出栈的演示程序,有界面
利用包可以把常用的类或功能相似的类放在一个包中。Java 语言提供系统包,其中包含了大量的类,可以在编写Java 程序时直接引用它们。为便于管理和使用它们,将这些类分为了不同的包。包又称类库或API 包,所谓API...
该项目是一个概念验证应用程序,用于在Java中实现长堆栈跟踪功能。 正常走线 演示的主要功能是 public static void main( String [] args) throws InterruptedException { ExecutorService executorService = ...
Java虚拟机(JVM)是Java Virtual Machine的缩写,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能模拟来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的...
但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...
一个计算器,有多种功能,如取对数、求平方根。最重要的是利用堆栈算法实现运算符优先级。
java 作为现在用户最多,使用最为广泛的技术,主要是由于一个...评估堆栈的正确性和效率通过一个访问障碍。该实验结果 以一系列 SPECjvm2008 的基准表示出来。根据不同的标准测试得垃圾回收小效率有 2%-5% 的提升。
(Kotlin语言对Java语言和类库兼容性良好,且对于空指针更为安全) web管理服务被移除。(安全增强,技术堆栈精简) 启动服务器可通过参数决定是否同时启动管理GUI,GUI由JavaFX实现。(易用性增强) web交易页面被...
文本编辑器 用Java内置的应用程序。 功能很多,但主要功能是文本的撤消和重做,它不是使用java的内置功能构建的,而是借助堆栈和队列等数据结构实现的。
9. 用ajax技术实现一个级联菜单功能。 10.写出插入法进行排序代码。 11.编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",...
JGL实现了许多功能,可满足对一个集合库的大多数常规需求,它与C++的模板机制非常相似。JGL包括相互链接起来的列表、设置、队列、映射、堆栈、序列以及反复器,它们的功能比Enumeration(枚举)强多了。同时提供了...
但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...
类Calculator为程序主体部分,包括GUI的设计,各功能键的响应处理,各种异常的处理及帮助信息的设置 主要思想:1)将中缀表达式转化为后缀表达式 2):根据后缀表达式计算表达式结果 数据结构:堆栈(使用JAVA中util...
SnakeScript是一款JAVA游戏模拟脚本引擎,程序代码类似于C。 本版新增功能及特性: 1.动态优先级设定; 2.动态实现脚本的加载、释放、暂停、恢复、结束等控制; 3.自动堆栈平衡; 4.无限级别函数调用...
一是所有的Struts2应用程序都是基于client/server HTTP交换协议,The Java Servlet API揭示了Java Servlet只是Java API的一个很小子集,这样我们可以在业务逻辑部分使用功能强大的Java语言进行程序设计。 二是提供...
2、参照该工程中已有的两个例子(一个是在方法开始插入日志,一个是在方法结束插入日志),实现TransformDescriptor和TransformHandler接口 3、把两个接口实现类的全路径,分别加到以下两个文件中 src/main/...
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的...
Java Virtual Machine(Java虚拟机),它bai是一个虚构出来du的计算机,是通过在实际的计算机上仿zhi真模拟各种计算机功能dao来实现的,。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令...
它包括一个 RMI proxy 和一个 daemon 应用程序,它让 Java 应用程序可以访问远程计算机上的 USB 设备。 usb.util : 这个包提供了一些有用的实用程序,可以将 firmware下载到 USB 设备上、将 USB 系统的内容转储到 ...
一、要解决的问题 设计GUI界面的计算器程序,用户可以通过鼠标依次输入参加计算的数值进行加、减、乘、除等混合运算功能。可参照windows平台上的...实现时钟程序用到了paint 与 repaint 三、设计 ...................