博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基本数据结构——栈
阅读量:7079 次
发布时间:2019-06-28

本文共 1345 字,大约阅读时间需要 4 分钟。

  栈的特征是后进先出(last-in, first-out, LIFO)。栈上的插入操作称为压入(PUSH),删除操作称为弹出(POP)。

下面使用一个数组S[n]来实现一个最多容纳n个元素的栈。定义一个属性指向最新插入的元素。栈的操作代码如下:

public class Stack {        private Object[] objs;    private int pointTop = -1;    //指向最新插入的元素        public Stack() {    }        public Stack(int n) {    //初始化数组的大小        objs = new Object[n];    }        public boolean isEmpty() {        if(pointTop == -1){            return true;        }        return false;    }        public boolean isFull() {        if(pointTop == objs.length-1){            return true;        }        return false;    }        public boolean push(Object obj) {        if(!isFull()){            pointTop += 1;            objs[pointTop] = obj;            return true;        }        return false;            }        public Object pop() {        if(isEmpty()){            return -1;        }else{            pointTop = pointTop-1;            return objs[pointTop+1];        }            }        public static void main(String[] args) {        Stack stack = new Stack(10);        for(int i=0;i<5;i++){            if(stack.push(i)){                System.out.println(i);            }        }        System.out.println();        for(int i=0;i<5;i++){            System.out.println(stack.pop());        }    }    }

运行结果:

0

1
2
3
4

4

3
2
1
0

转载于:https://www.cnblogs.com/ming-zi/p/6373040.html

你可能感兴趣的文章
linux高可用性文件服务器群集之DRBD+NFS+Heartbeat
查看>>
python计算春节倒计时
查看>>
系统负载能力浅析
查看>>
各种mysql视频的学习笔记
查看>>
OC高效率52之以“自动释放池块”降低内存峰值
查看>>
Linux初学者笔记01
查看>>
Android ListView或GridView中含有CheckBox时,获取选中的id
查看>>
Struts2 - 配置备忘
查看>>
Linux集群简介以及lvs-dr部署(二)
查看>>
eclipse创建maven
查看>>
layer ui使用多层弹框时,各个页面交互问题
查看>>
linux基本命令2 创建文件/文件夹/复制文件/文件夹
查看>>
BackSwap银行***利用三种全新技术清空银行帐户
查看>>
html+css+js(+JQuery)制作扑克牌图片切换效果
查看>>
电脑远程连接建立和设置连接选项操作步骤
查看>>
MySQL常用查询语句(23个)
查看>>
Date/TimePicker
查看>>
pc端车牌识别在智能机器人上的应用
查看>>
对接小结
查看>>
JMS简介与ActiveMQ实战
查看>>