码迷,mamicode.com
首页 > 其他好文 > 详细

栈的实现

时间:2018-05-18 18:00:22      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:new   组复制   OLE   public   栈的实现   ret   查看   img   int   

 

栈是一种只能先进后出的结构。只能在一端进行插入和删除。数据和对象是存放在栈中的,得先创建一个对象。

技术分享图片

这就是栈的实现过程。

package zhan;
//栈的实现
public class zhan {
//创建一个长度为0的空字符数组
String str[]=new String[0];
//写一个将元素对象压入栈的方法
public void push(String s) {
//创建一个长度+1的字符数组
String c[]=new String[str.length+1];
//将元素放到栈的最后一位依次放入
c[c.length-1]=s;
//将元素的数据按照原来的位置放到新数组中
for(int i=0;i<str.length;i++){
c[i]=str[i];
}
str=c;

}

// 查看栈顶的数据 也就是最后放入的对象的数据
public String look() {
//如果长度为0 那么就没有对象数据返回的是null
if(str.length==0){
return null;
}
//如果不为0 就是该数组的最后一位数
{
return str[str.length-1];
}
}

// 弹出栈顶的数据[移除]
public String poll() {
//如长度为0 那么就无法删除数据
if(str.length==0){
return null
}
//否则删除的是数组中的最后放的数据 先获取最后一个数据
{
String s= str[str.length-1];
//创建一个长度比原来小一个的数组,然后再将数组复制到下面 不复制最后一个
String f[]= new String[str.length-1];
for(int i=0;i<str.length;i++){
f[i]=str[i-1];
}
str=f;
}
}

// 获得栈的长度
public int size() {
return str.length;
}
// 判断栈是否为空
public boolean isEmpty() {
return str.length==0;
}
}

栈的实现

标签:new   组复制   OLE   public   栈的实现   ret   查看   img   int   

原文地址:https://www.cnblogs.com/cjfzezhon/p/9057090.html

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