Java版——堆栈
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java版——堆栈相关的知识,希望对你有一定的参考价值。
1.堆栈是一种线性数据结构,先进后出。
2.应用一:在程序中匹配分隔符(在 java程序中读取一个字符,如果它是左分隔符就将他压入堆栈。如果它是右分隔符,就将他和栈中弹出的一个分隔符相比较,如果匹配,就继续处理,否则就发出了一个错误信号,停止处理)
应用二:执行一些非常大的数字的加法。
应用三:java中的jvm是基于堆栈的。
3.堆栈的数组链表实现
1 package sequence_stack; 2 3 public class sq_Stack { 4 private java.util.ArrayList pool = new java.util.ArrayList(); 5 public sq_Stack(){ 6 7 } 8 public sq_Stack(int n){ 9 pool.ensureCapacity(n); 10 } 11 public void clear(){ 12 pool.clear(); 13 } 14 public boolean isEmpty(){ 15 return pool.isEmpty(); 16 } 17 // public Object topEl(){ 据初步估计,这个函数应该是为了返回最后一个元素,但出错了,不知道为什么。 18 // if(isEmpty()) 19 // throw new java.util.EmptyStackException(); 20 // return pool.lastElement(); 21 // } 22 public Object pop(){ 23 if(isEmpty()) 24 throw new java.util.EmptyStackException(); 25 return pool.remove(pool.size() - 1); 26 } 27 public void push(Object e1){ 28 pool.add(e1); 29 } 30 public String toString(){ 31 return pool.toString(); 32 } 33 }
4.堆栈的链表实现
1 package linklist_stack; 2 3 public class LLStack { 4 private java.util.LinkedList list = new java.util.LinkedList(); 5 public LLStack(){ 6 7 } 8 public void clear(){ 9 list.clear(); 10 } 11 public boolean isEmpty(){ 12 return list.isEmpty(); 13 } 14 public Object topEl(){ 15 if(isEmpty()) 16 throw new java.util.EmptyStackException(); 17 return list.getLast(); 18 } 19 public Object pop(){ 20 if(isEmpty()) 21 throw new java.util.EmptyStackException(); 22 return list.removeLast(); 23 } 24 public void push(Object e1){ 25 list.addLast(e1); 26 } 27 public String toString(){ 28 return list.toString(); 29 } 30 }
以上是关于Java版——堆栈的主要内容,如果未能解决你的问题,请参考以下文章