首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 软件考试 > 复习指导 >

数据结构实例

2009-01-07 
数组实现一个简单的堆栈

    堆栈(Stack)是一个比较普通,而又特别的数据结构。合理利用它的先进后出(FILO),有时候会有一些比较好的作用。这里面不多讲的它的应用,而是举一个很简单的例子来表明它的FILO特性,并用数组来实现一个堆栈算法。
  请看代码:
  import java.util.*;
  public class TestStack{
  public static void main(String args[]){
  Stack<String> stack = new Stack<String>();
  for(int i=0; i<10; i++)
  stack.push("Stack"+ i);
  while(!stack.isEmpty())
  System.out.println(stack.pop());
  }
  }
  结果我就不打印了,从上面的例子中,我们可以看出Stack类的一些典型方法,比如push,pop和isEmpty方法。下面就利用数组来实现一个Stack算法:
  class StackOverflowException extends Exception{
  public StackOverflowException(){
  }
  }
  class StackEmptyException extends Exception{
  public StackEmptyException(){
  }
  }
  public class StackClass {
  private int stackSize;
  private int stackTop;
  private String[] array;
  public StackClass(){
  System.out.println("The current Stack capacity is 100.");
  stackSize = 100;
  stackTop = 0;
  array = new String[stackSize];
  }
  public StackClass(int size){
  if (size <= 0){
  System.out.println("The current Stack capacity is 100.");
  stackSize = 100;
  }
  stackSize = size;
  stackTop = 0;
  array = new String[stackSize];
  }
  public boolean isFullStack(){
  return stackSize == stackTop;
  }
  public boolean isEmptyStack(){
  return stackTop == 0;
  }
  public void push(String str) throws StackOverflowException{
  if (isFullStack())
  throw new StackOverflowException();
  array[stackTop] = str;
  stackTop ++;
  }
  public String pop() throws StackEmptyException{
  if (isEmptyStack())
  throw new StackEmptyException();
  stackTop --;
  return array[stackTop];
  }
  public static void main(String args[]){
  StackClass stack = new StackClass();
  try{
  stack.push("a");
  stack.push("aa");
  stack.push("aaa");
  }
  catch(StackOverflowException e){
  e.printStackTrace();
  }
  try{
  while (!stack.isEmptyStack())
  System.out.println(stack.pop());
  }
  catch(StackEmptyException e){
  e.printStackTrace();
  }
  }
  }
  输出结果是:
  The current Stack capacity is 100.
  aaa
  aa
  a
  当然这个堆栈的实现还是有许多不足的地方,比如只能存储字符串型的元素,关于它的完善将在以后进行。大家先只是看看想想吧...^_^...

 

3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/

热点排行