美文网首页
大话数据结构—两栈共享空间(五)

大话数据结构—两栈共享空间(五)

作者: 浅浅星空 | 来源:发表于2019-02-19 17:34 被阅读5次

1.两栈共享空间

public class TwoStackShare {

    private static final int MAX_SIZE = 10;
    private int top1 = -1;
    private int top2 = MAX_SIZE;
    private Object[] data;

    public void push(int stackNumber, Object element) {
        if (top1 + 1 == top2) {
            throw new RuntimeException("栈满");
        }
        if (stackNumber == 1) {
            data[++top1] = element;
        } else {
            data[--top2] = element;
        }
    }

    public Object pop(int stackNumber) {
        if (stackNumber == 1) {
            if (top1 == -1) {
                throw new RuntimeException("栈1空");
            }
            return data[top1--];
        } else {
            if (top2 == MAX_SIZE) {
                throw new RuntimeException("栈2空");
            }
            return data[top2++];
        }
    }
}

相关文章

  • 大话数据结构—两栈共享空间(五)

    1.两栈共享空间

  • 两栈共享空间

    参考书籍:《大话数据结构》环境:VS2017

  • 两栈共享空间

    1.如果有两个相同类型的栈,我们为它们各自开辟了数组空间,极有可能一个栈已经满了,再进栈就溢出了,而另一个栈还有很...

  • 共享栈

    利用栈底为止相对不变的特性,可让两个顺序栈共享一个一维数组空间,将两个栈的栈底分别设置在共享空间的两端,两个栈顶向...

  • [libco] 协程栈空间

    协程“栈”空间,有独立栈和共享栈,重点理解一下协程共享栈。 文章来源:[libco] 协程栈空间[https://...

  • 栈的扩展

    共享栈 两个栈 共享一片存储空间 栈s1 需要存6个 而栈s2 只需要存1个 栈s2 有多余的存储空间 但是它不需...

  • 栈(两栈共享空间结构)

    栈:限定只能在表尾进行插入和删除的线性表。 两栈共享空间结构:使用数组同时实现两个栈,即栈1和栈2;栈1为空时,栈...

  • 数据结构的各种代码

    第 02 章 线性表 顺序存储结构 链式存储结构 第 03 章 栈与队列 顺序栈 链栈 两栈共享空间 循环队列 链...

  • 共享空间表和独立空间表

    对于innodb的数据结构,首先要解决两个概念性的问题: 共享表空间以及独占表空间。 什么是共享表空间和独占表空间...

  • 【数据结构】【C#】007-栈:💫双端栈(顺序栈的两栈共享)

    C#数据结构:顺序栈的两栈共享(双端栈) 栈的应用非常广泛,经常会出现在一个程序中需要同时使用多个栈的情况。若使用...

网友评论

      本文标题:大话数据结构—两栈共享空间(五)

      本文链接:https://www.haomeiwen.com/subject/sgmfyqtx.html