java实现栈

原创 2018年04月17日 20:21:19
栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像一个杯子,每次都只能取杯子顶上的东西,而对于栈就只能每次访问它的栈顶元素,从而可以达到保护栈顶元素以下的其他元素.”先进后出”或”后进先出”就是栈的一大特点,先进栈的元素总是要等到后进栈的元素出栈以后才能出栈.递归就是利用到了系统栈,暂时保存临时结果,对临时结果进行保护
public class MyStack {
	// 底层是实现一个数组
	private long[] arr;
	private int top;

	// 构造方法
	public MyStack() {
		arr = new long[10];
		top = -1;
	}

	// 有参构造寒素
	public MyStack(int maxsize) {
		arr=new long[maxsize];
		top = -1;
	}
	//添加元素
	public  void push(int value){
		arr[++top]=value;
	}
	//删除元素
	public long pop(){
		return arr[top--];
	}
	//查看是否为空
	public boolean isEmpty(){
		return top==-1;
	}
	//查看数据
	public long peek(){
		return arr[top];
	}
	//判断是否满了
	public boolean isFull(){
		return top==arr.length-1;
	}
}

下边是测试类:只测试了进栈和出栈:
public class MyStackTest {
public static void main(String[] args) {
	
	MyStack ms=new MyStack();
	ms.push(1);
	ms.push(2);
	ms.push(4);
	ms.push(6);
	ms.push(7);
	ms.push(8);
	ms.push(9);
	ms.push(0);
	
	while(!ms.isEmpty()){
		System.out.print(ms.pop());
	}
}
}

控制台输出:

09876421

两个栈实现队列+两个队列实现栈----java

两个栈实现队列+两个队列实现栈----java 一.两个栈实现一个队列 思路:所有元素进stack1,然后全部出stack1并进入stack2.实现队列的先进先出即:若stack2非空,我们需要的恰好...
  • u010093630
  • u010093630
  • 2014-08-08 00:52:45
  • 10740

Java栈实现

数组实现的栈一:优点:插入和删除很快,缺点:长度有限 public class Stack { private int top = -1; private Object[] objs; pu...
  • a19881029
  • a19881029
  • 2014-03-30 20:25:50
  • 15012

Java中栈的实现(2)-使用单向链表以及实现

栈和队列其实是与普通的线性发展而来的,为普通的线性表增加一些特殊的限制就可以得到栈和队列了。从功能上看,栈和队列比普通的线性表功能相对弱一点,但是在特殊的场合下,使用栈和队列更有利,例如,编译器在实现...
  • daguairen
  • daguairen
  • 2016-10-06 15:38:45
  • 531

java 实现一个栈

package zhangtingting; public class StackTest { private Object[] stack; //元素个数; private int size...
  • ningxuezhu
  • ningxuezhu
  • 2012-10-03 17:38:51
  • 2921

用两个队列实现一个栈 JAVA实现

package AlgorithmTest; import java.util.ArrayDeque; import java.util.Deque; /** * Created by dell...
  • u014698348
  • u014698348
  • 2015-10-05 16:21:53
  • 960

java用数组实现栈

1.1.  栈的数据结构 栈是一种先进后出的数据结果,只能在一端(称为栈顶(top))对数据项进行插入和删除。 1.2.  Java实现 StackTest p...
  • u022812849
  • u022812849
  • 2015-02-14 10:10:14
  • 9631

java自定义栈(链表实现)

使用链表来实现栈比用数组更加方便,也易于节省空间,因为栈只能在栈顶进行操作,不需要进行随机访问栈元素首先实现栈接口IStack,提供出栈、入栈、获取栈顶元素、判断是否为空以及清空栈等基本功能:...
  • jdhanhua
  • jdhanhua
  • 2011-07-12 10:45:59
  • 2477

两个栈实现一个队列以及两个队列实现一个栈(Java)

两个栈实现一个队列import java.util.Stack;public class Demo07 { Stack stack1 = new Stack(); Stack stac...
  • scgaliguodong123_
  • scgaliguodong123_
  • 2015-09-02 10:51:44
  • 5522

两栈共享空间(java实现)

如果我们有两个相同类型的栈,我们为他们各自开辟了数组空间,极有可能第一个栈已经满了,再进栈就溢出了,而另一个栈还有很多存储空间空闲。这时,我们可以充分利用顺序栈的单向延伸的特性,使用一个数组来存储两个...
  • u012515904
  • u012515904
  • 2015-05-07 10:06:57
  • 831

两个队列实现一个栈 + 两个栈实现一个队列 Java

面试中常出现让你手写两个队列实现一个栈,两个栈实现一个队列的问题,很是头疼!今天就仔细将我分析,思考过的Java代码给大家分享一下: (一)两个队列实现一个栈: 两个队列添加元素,哪个队列为空,由于在...
  • super_YC
  • super_YC
  • 2017-07-16 17:18:14
  • 949
收藏助手
不良信息举报
您举报文章:java实现栈
举报原因:
原因补充:

(最多只允许输入30个字)