java小白求大神解决这个问题用插入和删除来创建固定长度的栈

narakooo 2019-03-19 10:59:48
(1) 编写一个接口,为栈提供名为push( )和pop( ) 的两个方法。
(2) 编写一个应用这两个方法的类,用来创建固定长度的栈。
(3) 在main方法中利用新建的类创建对象,进行入栈、出栈操作。
...全文
199 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
narakooo 2019-03-21
  • 打赏
  • 举报
回复
谢谢大佬,我现在太菜了, 您的方法我没完全看懂,不过我大概学会了,也写出了自己代码。
interface Stackkou{
public void push(String data);
public void pop();

}

public class StackImpl implements Stackkou{
String datas[]=new String[10];
int n=0;
String data;

/*public StackImpl (int length)
{
String datas[]=new String[length];

}*/
public void push(String data){
System.out.print("插入栈顶元素: ");
if(n>=10)//超出栈的长度
{ System.out.println("结果: 栈满,无法插入元素!");}
else{
System.out.println("结果:元素"+data+"被插入了栈顶");
datas[n]=data;
n++;
}
}
public void pop(){
System.out.print("移出栈顶元素: ");
if(n<=0){
System.out.println("结果:栈空,无元素可移出!");
}
else
{
data=datas[n-1];
datas[n-1]=null;
n--;
System.out.println("结果:栈顶元素 "+data+" 移出了栈顶");
}
}
public void pick()
{
System.out.println("查看目前栈顶元素:"+datas[n-1]);
}
public void check()
{
System.out.println("目前栈中的情况:");
System.out.println("有"+n+"个元素");
for(int i=0;i<n;i++)
{

System.out.println("a["+i+"]为"+datas[i]);
}
}
public static void main(String[] args){
//测试
StackImpl s1= new StackImpl();
s1.pop();
s1.push("1");
s1.push("2");
s1.push("3");
s1.push("4");
s1.push("5");
s1.pick();
s1.push("6");
s1.push("x");
s1.pop();
s1.push("7");
s1.push("8");
s1.push("9");
s1.push("10");
s1.push("11");
s1.push("12");
s1.pop();
s1.pop();
s1.pick();
s1.check();
}
}
qps2009 2019-03-20
  • 打赏
  • 举报
回复
public class Test {
    interface Stack<T>{
        void push(T data);
        T pop();
        T peek();//返回栈顶元素
    }
    static class StackImpl<T> implements Stack<T>{
        private T[] datas;
        private int n;
        public StackImpl (int length){//构造函数,创建长度为length的栈
            datas=(T[]) new Object[length];
            n=0;
        }
        public void push(T data){
            if(n>=datas.length)//超出栈的长度
                System.out.println("栈满!");
            else{
                datas[n]=data;
                n++;
            }
        }
        public T pop(){
            if(n<0){
                System.out.println("栈空!");
                return null;
            }
            T data=datas[n-1];
            datas[n-1]=null;
            n--;
            return data;
        }
        public T peek(){
            return datas[n-1];
        }
    }

    public static void main(String[] args){
        //测试
        Stack<Integer> stack= new StackImpl<>(10);
        stack.push(1);
        stack.push(2);
        System.out.println("栈顶元素:"+stack.peek());
        stack.push(3);
        System.out.println("栈顶元素:"+stack.peek());
        System.out.println("栈顶元素"+stack.pop()+"出栈后");
        System.out.println("栈顶元素:"+stack.peek());
    }
}

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧