zoukankan      html  css  js  c++  java
  • 一维数组模拟数据结构-------栈

    1、用一维数据模拟栈结构

    public class Stack1{
        
        //一维数据模拟栈结构
        Object[] elements;
        
        
        //默认栈的容量为5
        public Stack1(){
            this(5);    //this 这里是代码的重用,也可以写成 elements = new Object[5];
                         
        }
        
        public Stack1(int max){
            elements = new Object[max];
        }
        
        //模拟栈指针
        int index;
        
        //压栈方法
        public void push(Object element) throws Stack1OperationException{
            if(index == elements.length){
                throw new Stack1OperationException("The Stack1 have been Full");
            }
            elements[index++] = element;
        }
        
        //弹栈方法
        public  Object pop() throws Stack1OperationException{
            if(index == 0){
                throw new Stack1OperationException("The Stack1 have been Empty!");
            }
            return elements[--index];
        }
        
        
    }

    2、自定义栈异常类

    public class Stack1OperationException extends Exception{
        public void Stack1OperationException(){
            
        };
        public Stack1OperationException(String msg){
            super(msg);
        }
        
    }

    3、测试

    public class TestStack1{
        public static void main(String[] args){
            Stack1 s = new Stack1();
            User u1 = new User("Jack",23);
            User u2 = new User("Ford",24);
            User u3 = new User("King",25);
            User u4 = new User("Smith",26);
            User u5 = new User("COOK",27);
            User u6 = new User("zhangsan",28);
            try{
                s.push(u1);
                s.push(u2);
                s.push(u3);
                s.push(u4);
                s.push(u5);
                s.push(u6);
            }catch(Stack1OperationException e){
                e.printStackTrace();
            }
            try{
                System.out.println(s.pop());
                System.out.println(s.pop());
                System.out.println(s.pop());
                System.out.println(s.pop());
                System.out.println(s.pop());
            }catch(Stack1OperationException e){
                e.printStackTrace();
            }
        }
    }
    
    class User{
        String name;
        int age;
        
        User(String name, int age){
            this.name = name;
            this.age = age;
        }
        
        public String toString(){
            return "User[name="+name+" ,age="+age+"]";
        }
    }
  • 相关阅读:
    java xpath
    structs2 Interceptor
    jetbrains idea web help
    Java xpath example code THE RIGHT WAY
    java xpath engine
    本地安装jruby到maven仓库,由于公司网络不给力
    skybe的linux下的版本下载
    mybastis学 rails有migration了
    Using Java from Ruby with JRuby IRB
    PropertyPlaceholderConfigurer
  • 原文地址:https://www.cnblogs.com/StanLong/p/7707213.html
Copyright © 2011-2022 走看看