一维数组模拟栈数据结构操作(练习)

 1 package array;
 2 /*
 3 编写程序,使用一维数组,模拟栈数据结构,包含压栈、弹栈两个方法
 4 */
 5 
 6 public class test01 {
 7     public static void main(String[] args) {
 8         mystack a=new mystack();
 9         for (int i = 0; i < 15; i++) {
10             a.push("1");
11         }
12         //a.push("hhh");
13         for (int i = 0; i < 12; i++) {
14             a.pop();
15         }//a.pop();
16     }
17 }
18 
19 class mystack{
20     private Object[] elements;
21 
22     public Object[] getElements() {
23         return elements;
24     }
25     public void setElements(Object[] elements) {
26         this.elements = elements;
27     }
28 
29     private int a=-1;
30 
31     public int getA() {
32         return a;
33     }
34     public void setA(int a) {
35         this.a = a;
36     }
37 
38     //无参构造方法,默认栈初始化容量10
39     public mystack() {
40         this.elements=new Object[10];
41     }
42 
43     /*压栈方法*/
44     public void push(Object obj){
45         if (a==elements.length-1){
46             System.out.println("栈已满!压栈失败");
47         return;}
48         a++;
49         elements[a]=obj;
50         System.out.println("压栈成功!栈帧指向"+a);
51         for (int i = 0; i < a+1; i++) {
52             System.out.print(elements[i]+" ");
53         }
54         System.out.println();
55     }
56 
57     /*弾栈方法*/
58     public Object pop(){
59         if (a==-1){
60             System.out.println("弹栈失败,站内已空");
61             return 0;
62         }
63         Object x=elements[a];
64         elements[a]=null;
65         a--;
66         System.out.print("弹栈成功,弹出的内容为"+x+",当前栈内存储情况:");
67         for (int i = 0; i < a+1; i++) {
68             System.out.print(elements[i]+" ");
69         }
70         System.out.println("");
71         return x;
72     }
73 }

 

上一篇:347. Top K Frequent Elements


下一篇:什么是垃圾收集