zoukankan      html  css  js  c++  java
  • 自定义栈

     1 public class Demo {
     2     public static void main(String[] args) {
     3         MyStack stack = new MyStack();
     4         stack.push("123");
     5         stack.push("abc");
     6         stack.push("hello");
     7         stack.push("wwww");
     8         System.out.println("返回栈的长度为:" + stack.getSize());
     9         System.out.println("判断栈是否为空:" + stack.isEmpty());
    10         System.out.println("判断栈是否为满:" + stack.isFull());
    11         System.out.println("返回栈中元素的个数为:" + stack.getElementCount());
    12         System.out.println("返回栈顶元素为:" + stack.peek());
    13         System.out.println("返回栈中元素的个数为:" + stack.getElementCount());
    14         System.out.println("出栈的元素为:" + stack.pop());
    15         System.out.println("出栈的元素为:" + stack.pop());
    16         System.out.println("返回栈中元素的个数为:" + stack.getElementCount());
    17         System.out.println("出栈的元素为:" + stack.pop());
    18         System.out.println("出栈的元素为:" + stack.pop());
    19         System.out.println("返回栈中元素的个数为:" + stack.getElementCount());
    20         System.out.println("判断栈是否为空:" + stack.isEmpty());
    21         System.out.println("判断栈是否为满:" + stack.isFull());
    22         System.out.println("返回栈的长度为:" + stack.getSize());
    23         System.out.println("返回栈中元素的个数为:" + stack.getElementCount());
    24     }
    25 }
    26 // 自定义栈
    27 class MyStack {
    28     // 利用数组来完成元素的存放
    29     String[] str = null;
    30     // 栈顶指针
    31     private int top;
    32     // 栈中元素的个数
    33     private int count;
    34     public MyStack() {
    35         this(10);
    36     }
    37     public MyStack(int size) {
    38         // 实例化String[]来存放元素
    39         str = new String[size];
    40         // 栈顶指针为-1
    41         top = -1;
    42         // 栈中元素初始为0个
    43         count = 0;
    44     }
    45     // 返回栈中元素的个数
    46     public int getElementCount() {
    47         return count;
    48     }
    49     // 返回栈长度
    50     public int getSize() {
    51         return str.length;
    52     }
    53     // 判断栈是否为满
    54     public boolean isFull() {
    55         return top == (str.length - 1);
    56     }
    57     // 判断栈是否为空
    58     public boolean isEmpty() {
    59         return top == -1;
    60     }
    61     // 入栈操作
    62     public void push(String data) {
    63         if (isFull()) {
    64             throw new RuntimeException("栈已满!");
    65         } else {
    66             str[++top] = data;
    67             count++;
    68         }
    69     }
    70     // 出栈操作
    71     public String pop() {
    72         if (isEmpty()) {
    73             throw new RuntimeException("栈是空的!");
    74         } else {
    75             count--;
    76             return str[top--];
    77         }
    78     }
    79     // 返回栈顶元素
    80     public String peek() {
    81         if (isEmpty()) {
    82             throw new RuntimeException("栈是空的!");
    83         } else {
    84             return str[top];
    85         }
    86     }
    87 }

      执行结果:

     1 返回栈的长度为:10
     2 判断栈是否为空:false
     3 判断栈是否为满:false
     4 返回栈中元素的个数为:4
     5 返回栈顶元素为:wwww
     6 返回栈中元素的个数为:4
     7 出栈的元素为:wwww
     8 出栈的元素为:hello
     9 返回栈中元素的个数为:2
    10 出栈的元素为:abc
    11 出栈的元素为:123
    12 返回栈中元素的个数为:0
    13 判断栈是否为空:true
    14 判断栈是否为满:false
    15 返回栈的长度为:10
    16 返回栈中元素的个数为:0
  • 相关阅读:
    hdu 4710 Balls Rearrangement()
    hdu 4707 Pet(DFS水过)
    hdu 4706 Children's Day(模拟)
    hdu 4712 Hamming Distance(随机函数暴力)
    csu 1305 Substring (后缀数组)
    csu 1306 Manor(优先队列)
    csu 1312 榜单(模拟题)
    csu 1303 Decimal (数论题)
    网络爬虫
    Python处理微信利器——itchat
  • 原文地址:https://www.cnblogs.com/void0720/p/4778086.html
Copyright © 2011-2022 走看看