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知识拾遗--三大框架的技术起源.pdfjava知识拾遗--三大框架的技术起源.pdf
Struts、Hibernate和Spring是我们Java开发中的常用的框架,他们分别针对不同的应用场景给出最合适的解决方案。但你是否知道,这些知名框架最初是怎样产生的?
java知识拾遗--三大框架的技术起源.docxjava知识拾遗--三大框架的技术起源.docx
11.java基础拾遗--匿名内部类语法详解.mp4
在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。
09.java基础拾遗--类的加载和对象的构造过程.mp4
10.java基础拾遗--匿名内部类的应用--实现scala中的集合map方法.mp4
Java语言拾遗 │ │ └─util 工具类 │ └─mq 消息队列 │ └─kafka └─resources 消息队列源码会作专题研究 关于消息队列使用参考另一个库:https://github.com/GitJavaProgramming/springboot_mybatis 参考...
17. 拾遗物品登记表.pdf
Java学习笔记 入门准备 接触物件 物件向导 资源管理 物件容器 输入输出 執行緒 反射 metadata 资料库 拾遗补缺 视窗程式 参考资料
拾遗·椰雕.css
小学语文教学点滴拾遗
初中语文文摘社会趣史拾遗文苑2013年第4期
拾遗物品的处理.doc
初中语文文摘社会西游拾遗
常见iphone面试题及答案拾遗,对于面试ios的你肯定会有帮助的。
奥数拾遗201812171