java实现栈数据结构

1.通过数组实现栈

import java.util.Arrays;

public class stack<E> {
	private int size=0;
	private Object[] stack;
	
	public stack() {
		stack = new Object[10];
	}
	//判断栈是否为空
	public Boolean isEmpety() {
		return size==0;
	}
	//查看栈顶元素
	public E peek() {
		if(isEmpety()) {
			return null;
		}
		E e = (E)stack[size-1];
		return e;
	}
	//弹出栈顶元素
	public E pop() {
		E e = peek();
		stack[size-1] = null;
		size--;
		return e;
	}
	//把数据压栈
	public E push(E e) {
	//判断空间是否够用
		curr(size+1);
		stack[size++] = e;
		return e;
	}
	//扩容方法,判断数组空间是否够用
	public void curr(int max) {
		if(max>stack.length) {
			stack = Arrays.copyOf(stack, 10);
		}
	}
}

2.通过链表实现栈

创建简单的节点元素

public class Node<E> {
	E e;
	Node nextNode=null;
	public Node(E e) {
		this.e = e;
	}
}

创建利用链表结构创建一个栈

public class listStack<E> {
	Node<E> topNode = null;
	//判断栈是否为空
	 public Boolean isEmtpy() {
		 return topNode==null;
	 }
	 //出栈
	 public E pop() {
		 if(isEmtpy()) {
			 return null;
		 }
		 E e = topNode.e;
		 topNode = topNode.nextNode;
		 return e;
	 }
	 //入栈
	 public E push(E e) {
		 Node<E> node = new Node<E>(e);
		 node.nextNode = topNode;
		 topNode = node;
		 return e;
	 }
	 获取栈顶元素
	 public E peek() {
		 return topNode.e;
	 }
}

栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值