博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组实现栈的压入、弹出
阅读量:3957 次
发布时间:2019-05-24

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

2021.03.21

 

package per.zhangyh.algorithm;/** *@author:zhangyonghui; *@date: 2021/3/21; 20:28 *@Describe: */public class MyStackTest {    public static void main(String[] args) {        MyStack myStack = new MyStack();        //压入元素:        myStack.push(2);        myStack.push(3);        myStack.push(5);        myStack.push(55);        myStack.push(10);        myStack.push(100);        myStack.push(1770);        //弹出元素:        myStack.pop();        myStack.pop();        myStack.pop();        //查看栈顶元素:        System.out.println("栈顶元素: " + myStack.peek());    }}//数组实现栈;压入元素,弹出元素;class MyStack {    //先初始化一个数组:    int[] arrays = new int[0];    /**     *  压入一个元素:     */    public int[] push(int a) {        //复制数组,长度加一:        int[] tempArrays = new int[arrays.length + 1];        //复制数据:        for (int i = 0; i < arrays.length; i++) {            tempArrays[i] = arrays[i];        }        //压入元素:        tempArrays[arrays.length] = a;        //替换原数组:        arrays = tempArrays;        //返回数据:        return arrays;    }    /**     * 弹出一个元素:     */    public int pop() {        //避免空栈弹出数据,导致出现栈下溢异常:        if (arrays.length == 0) {            throw new RuntimeException("栈已经空了,不能再弹出数据!");        }        //复制数组,长度减一:        int[] tempArrays = new int[arrays.length - 1];        //复制数据:        for (int i = 0; i < arrays.length - 1; i++) {            tempArrays[i] = arrays[i];        }        //替换原数组:        arrays = tempArrays;        //返回弹出的元素:        return arrays[arrays.length - 1];    }    /**     * 查看栈顶元素:     */    public int peek() {        return arrays[arrays.length - 1];    }}

 

转载地址:http://pytzi.baihongyu.com/

你可能感兴趣的文章
Linux git 常用命令
查看>>
线程池原理及创建并C++实现
查看>>
Mysql命令教程大全
查看>>
文档类程序各个类之间的相互访问关系
查看>>
sql server中count(*),count(col),count(1)的区别
查看>>
多年来,STL容器的使用总结!
查看>>
switch()case:语句的优化
查看>>
C语言各种数据类型在系统中占的字节和取值范围
查看>>
MultiThreadDownLoad
查看>>
类结构定义
查看>>
Java中Set转List 和 TreeMap中实现自定义类作为key值
查看>>
SQL中的CONSTRAINT用法总结
查看>>
Windows下关于多线程类 CSemaphore,CMutex,CCriticalSection,CEvent,信号量CSemaphore的使用介绍
查看>>
图像处理基本算法(汇总)以及实现
查看>>
C++编程获取本机网卡信息 本机IP 包括Windows和Linux
查看>>
socket通信网络模型 ——Epoll、IOCP模型详解以及与select、kqueue等常见模型的区别特点
查看>>
HTTP协议/RTP/RTSP协议/RTMP协议的区别
查看>>
23种设计模式详解及C++实现
查看>>
C++连接CTP接口实现简单量化交易
查看>>
服务端使用c++实现websocket协议解析及通信
查看>>