首页 > 代码库 > Java版——堆栈
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版——堆栈
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。