java拾遗录4
一、用数组实现栈操作
废话不说,直接上代码
package stack;
/**
*@作者 qy
*@时间版本 版本1 下午08:49:07 2011-8-30
*/
public class StackTestByArray
{
private Object[] array;
private int top;
public StackTestByArray(int size)
{
array = new Object[size];
top = -1;
}
//判断栈是否为空
public boolean isEmpty()
{
return top == -1;
}
//判断栈是否满
public boolean isFull()
{
return size() == array.length;
}
//返回当前栈的大小
public int size()
{
return top+1;
}
//弹栈
public Object pop()
{
if (isEmpty())
{
System.out.println("栈为空");
return null;
}
Object temp = array[top];
array[top] = null;
top -= 1;
return temp;
}
public void push(Object newValue)
{
if (newValue == null)
{
System.out.println("入栈数据为null");
return;
}
if (isFull())
{
System.out.println("栈满");
return;
}
top++;
array[top] = newValue;
}
//取栈头元素
public Object peek()
{
if (isEmpty())
{
System.out.println("栈为空");
return null;
}
return array[top];
}
}
这是使用数组实现的栈,很简单。
下面是链表实现:(Node类看我前面的文章即可)
package stack;
import array.Node;
/**
*@作者 qy
*@时间版本 版本1 下午09:15:56 2011-8-30
*/
public class StackTestByNode
{
private Node top ;
private int count;
public StackTestByNode()
{
top = null;
count = 0;
}
//是否栈满
public boolean isFull()
{
//这里我们用的链表 姑且没有满的状态 内存爆了再说
return false;
}
//是否栈空
public boolean isEmpty()
{
return count == 0;
}
//大小
public int size()
{
return count;
}
//入栈
public void push(Object value)
{
if (value == null)
{
System.out.println("插入数据为null");
return ;
}
count++;
Node n = new Node(value, top);
top = n;
}
//出栈
public Object pop()
{
if (isEmpty())
{
System.out.println("栈空");
return null;
}
count--;
Object value = top.value;
top = top.next;
return value;
}
//取栈顶元素
public Object peek()
{
if (isEmpty())
{
System.out.println("栈空");
return null;
}
return top.value;
}
}
也是很简单,就不多说了,大家看看就好,不要出声.........
分享到:
相关推荐
NULL 博文链接:https://langyu.iteye.com/blog/1167581
Java知识拾遗:三大框架的技术起源 本篇文章主要讲述了Java开发中三大框架的技术起源,即Struts、Hibernate和Spring框架。这些框架是我们Java开发中的常用的框架,它们分别针对不同的应用场景给出最合适的解决方案...
java回顾、知识整理、拾遗、面试_java-review
11.java基础拾遗--匿名内部类语法详解.mp4
在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。
读书笔记:算法 并发 函数式编程 java语言拾遗 手写设计模式
09.java基础拾遗--类的加载和对象的构造过程.mp4
10.java基础拾遗--匿名内部类的应用--实现scala中的集合map方法.mp4
Java开发中的三大框架——Struts、Hibernate和Spring,都是为了解决传统Java Web应用程序中存在的一系列问题而诞生的。这些框架分别针对MVC模式的实现、数据持久化和依赖管理给出了高效且灵活的解决方案。 Struts...
Java开发中的三大框架,即Struts、Hibernate和Spring,各自解决了传统Java Web应用程序中的不同问题,提升了开发效率和代码质量。下面将详细讲解这三个框架的技术起源及其核心功能。 首先,Struts框架诞生于解决JSP...
Java语言拾遗 │ │ └─util 工具类 │ └─mq 消息队列 │ └─kafka └─resources 消息队列源码会作专题研究 关于消息队列使用参考另一个库:https://github.com/GitJavaProgramming/springboot_mybatis 参考...
**拾遗补缺** 除了上述主题,还要关注其他Java编程中的细节,如枚举、类型转换、异常层次结构、字符串操作、日期时间处理等。熟悉标准库中的各种类和方法,提高编码效率。 **视窗程式** 尽管Java主要用于服务器端...
17. 拾遗物品登记表.pdf
拾遗物品的管理制度是社会文明进步的标志之一,它体现了人们对于财物归属权的尊重以及对公共道德的维护。在中国传统文化中,拾金不昧被视为高尚的品德,而在现代社会,完善的拾遗物品管理制度则是社会主义精神文明...
在"day03 拾遗"中,特别提到了小数的取模运算。需要注意的是,Java中的小数取模与整数有所不同,可能会导致非预期的结果。例如,12.12%2.2的结果是1.1199,而8.8%2的结果是0。这是因为浮点数的取模运算并不总是精确...
### 有感于《路边拾遗》:摄影与心灵之旅 #### 一、摄影的意义与价值 《路边拾遗》是一本由两位非职业摄影师创作的摄影画册,书中不仅收录了他们拍摄的精美照片,更重要的是传达了作者对摄影艺术的理解与感悟。...
拾遗·椰雕.css
#### 一、Java语言拾遗 ##### 1、Vector与ArrayList - **起源与版本**:`Vector` 类自 JDK 1.0 就已存在,从 Java 2 平台 v1.2 开始进行了改进,实现了 `List` 接口,使其成为 Java Collections Framework 的一...