美文网首页
数据结构----栈

数据结构----栈

作者: pgydbh | 来源:发表于2018-08-21 10:43 被阅读12次

结构

先进后出
需要size()----大小
需要push()----压入
需要pop()----弹出
内存不够需要exPool()----扩展
同步需要锁住push()与pop()。size变量需要及时变更。volatile保持可见性。

代码

public class Stack<T> {

    /**
     * 1.size
     * 2.push
     * 3.pop
     * 4.同步
     */

    private volatile int size;
    private int len = 10;
    private Object[] ts;

    public Stack(){
        ts = new Object[10];
    }

    public int size(){
        return size;
    }

    public synchronized void push(T t){
        if (size >= len){
            exPool();
        }
        ts[size] = t;
        size++;
    }

    public synchronized T pop(){
        if (size > 0){
            size--;
            return (T) ts[size];
        } else {
            return null;
        }
    }

    private void exPool(){
        Object[] tsNew = new Object[len = len * 2];
        for (int i = 0; i < size; i++){
            tsNew[i] = ts[i];
        }
        ts = tsNew;
    }
}

相关文章

  • 栈和队列

    1、栈 栈是一种先进先出的数据结构。栈顶进栈,栈顶出栈。 数据结构 栈的初始化 进栈 出栈 栈的最小值 2、队列 ...

  • 004 go语言实现栈

    1 数据结构 数据结构: 要实现的功能:0 栈的初始化1 获取栈长度2 入栈3 出栈4 清空栈内容5 判断栈是否为...

  • java高级知识点

    1.数据结构 程序=数据结构+算法 栈:后进先出,线性结构 入栈:push 出栈:pop假如已知入栈顺序是ab...

  • 栈和堆以及栈区和堆区的区别

    栈和堆以及栈区和堆区的区别 数据结构中的栈和堆 栈:具有先进后出性质的数据结构 堆:一种经过排序的树形数据结构,节...

  • 数据结构与算法 第二节:栈 栈: 一种先进后出的数据结构。可以想象成手枪的弹夹。 栈的特点: 栈的行为: 栈的代...

  • 2019-07-11—栈

    栈:Java数据结构和算法(四)——栈 string和char一般这么转化: 21、定义栈的数据结构,请在该类型中...

  • 什么是堆栈?

    堆与栈是两种数据结构,并不是一种数据结构,堆是堆,栈是栈。 1、栈:是一种只能在一端进行插入和删除的数据结构。 允...

  • 05--栈 递归

    栈 栈(Stack)又名堆栈,它是一种重要的数据结构。从数据结构角度看,栈也是线性表,其特殊性在于栈的基本操作是线...

  • 18-04-21 python3 算法笔记 002基本数据结构

    线性数据结构 栈,队列,deques,列表其元素在数据结构中的位置由它被添加时的顺序决定。 栈 后进先出栈 LI...

  • 数据结构

    数据结构:要写!!手动!!数据结构非常简洁才可 栈 eg. 弹栈压栈的过程 链表 就是原型链不断的连接,要断去某个...

网友评论

      本文标题:数据结构----栈

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