码迷,mamicode.com
首页 > 编程语言 > 详细

算法之 栈内存共享空间

时间:2015-03-10 19:01:51      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

package bin;

import java.util.ArrayList;
import java.util.List;

import javax.management.RuntimeErrorException;

/**
 * @author bin 15/3/10
 * target  共享栈空间
 *
 */
public class Bin_stack_share {
    private int top1;//栈一的栈顶记录
    private int top2;//栈二的栈顶记录
    private Object obj[];//存储容器
    private int type;
    private int size;//栈长度
    
    
    
    public int getTop1() {
        return top1;
    }



    public void setTop1(int top1) {
        this.top1 = top1;
    }



    public int getTop2() {
        return top2;
    }



    public void setTop2(int top2) {
        this.top2 = top2;
    }



    public Object[] getObj() {
        return obj;
    }



    public void setObj(Object[] obj) {
        this.obj = obj;
    }


    public int getSize() {
        return size;
    }



    public void setSize(int size) {
        this.size = size;
    }


    //构造方法 初始化栈长度 
    public Bin_stack_share(int size){
        this.setTop1(-1);
        this.setTop2(size);
        this.setSize(size);
        this.setObj(new Object[size]);
    }
     
        
    //进栈方法
    public void push(Object val,int type){
        if(top1+1 == top2){
            throw new RuntimeException("栈满");
        } 
        //如果type 为1 则入栈一    else 为栈二
        if(type == 1){
            obj[top1+1] = val;
            top1 = ++top1;
        }else{
            obj[top2-1] = val;
            top2 = --top2;
        }
    }
    public Object pop(int type){
        
        if(top1 == -1 && top2 == size){
            throw new RuntimeException("空栈");
        } 
        Object temp = new Object();
        if(type == 1){
            //当TYPE等于1的时候 我们弹出栈1的栈顶
            temp = obj[top1];
            obj[top1] = null;
            top1 = --top1;
        }else{
            temp = obj[top2];
            obj[top2] = null;
            top2 = ++top2;
        }
        return temp;
    }
    
    public static void main(String[] args) {
        
        Bin_stack_share b = new Bin_stack_share(2);
        b.pop(2);
        
        System.out.println(b.top1);
        
    }
    
}
 

 

算法之 栈内存共享空间

标签:

原文地址:http://www.cnblogs.com/bin-pureLife/p/4326633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!