数据结构基础——栈

在这里插入图片描述
在这里插入图片描述

import java.util.Scanner;

public class Main {

 final static  int maxsize=100005;

  static String[] Mystack =new String[maxsize]; //栈
  static int Top=0;         //栈顶指针

  static boolean in(String  name)
  {
      if(Top>=maxsize) return false;
      else {
          Mystack[++Top]=name;
          return true;
      }

  }
  static boolean isEmpty(){

      if(Top!=0) return false;
      else return true;

  }

  static boolean out()
  {
      if(isEmpty()) return false;
      else{
          Top--;
          return true;
      }
  }
  static String getTop()
  {
      if(isEmpty()) return "";
      else return Mystack[Top];
  }

  public static void main(String[] args)

  {
      int N;
      Scanner in=new Scanner(System.in);
      N=in.nextInt();
      for(int i=0;i<N;i++)
      {
          String op,name;
         op=in.next();
         name=in.next();
         // System.out.println(op+"  "+name);
          if(op.contains("in") )in(name);
          else {
              while(!getTop().equals(name)){
                 // System.out.println(getTop());
                  out();
              }
              out();
          }
      }
      if(isEmpty()) System.out.println("Empty");
      else System.out.println(getTop());
  }
}

在这里插入图片描述
实验总结

关于栈的定义方式,跟前面两讲一样在各种教科书上和网站都有着各个不同版本的定义方式,我们主要是学习该数据结构的实现原理,虽然实现可能千奇百怪但是我们理解原理就好,对于实现我们还是要追求简单高效即可。

本次实验,我们学习了栈的实现方式,了解了栈的原理与基本的实现方式,学有余力的同学们可以使用链表自己声明并定义链式栈,但是我们后续用不到,可以当作对自己编码能力的提升。随着我们课程的深入这些工具数据结构我们都不会再自己定义使用了,各类编程语言都给了现成的库模板等,我们都可以拿来直接而用,非常方便,这里给大家讲了,使用各语言的特性简化了自己写的代码,非常方便。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值