Java数据结构与算法/栈的基本方法/练习
主子很萌
2020年12月28日 20:31
收录于文集
共3篇

主子很萌:平

源码截图1

源码截图2

     程序源码

package Review;

/**

 * 

 * @author 栈(底层是数组)

 *

 */

public class StackX {

private long[] stackArray;//用数组来存储数据,所以创建一个长整型数组stackArray,用数组构建一个栈

private  int maxSize;//数组长度,即最大可存多少数据

private int top;//栈顶指针

/*

* 构造函数,对变量进行初始化

*/

public  StackX(int maxSize){

this.maxSize=maxSize;

stackArray=new long[ maxSize];

top=-1;

}

/*

* 压栈,往里存放,从栈顶开始压入

*/

    

public void  push(int j){

    stackArray[++top]=j;//相当于top++;stackArray[top]=j;

}

/*

* 查看并删除

*/

public long pop(){

return stackArray[top--];

}

/*

* 只查看不删除

*/

public long peek(){

return stackArray[top];

}

/*

* 判空

*/

public boolean isEmpty(){

return top==-1;

}

/*

* 栈是否满

*/

public boolean isFull(){

return top==(maxSize-1);

}

}

package Review;

import java.util.Scanner;

/**

 * 

 * @author 类StackX的方法测试

 *

 */

public class StackTest {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner sc= new Scanner(System.in);

System.out.println("请输入数组容量&#​34;);

     int num=sc.nextInt();

      StackX sn=new StackX(num);

      sn.push(20);

      sn.push(40);

      sn.push(60);

      sn.push(80);

      

      while(!sn.isEmpty()){//类似for循环输出

      long b =sn.pop();

      System.out.print(" &#​34;+b);

      }

      System.out.println();

      System.out.println("sn.isEmpty()=&#​34;+sn.isEmpty());

      System.out.println("sn.isFull():&#​34;+sn.isFull());

}

}

参考文献:    。。。。。。。。。。。。我随手写的,哪有什么参考