• 我们生活中还有很多这样的例子,比如我们在吃桶装薯片的时候,要想吃掉最后一片,就必须把前面的全部吃完;再比如我们浏览网页时候需要退回到之前的某个网页,我们需要一步步的点击后退键。。栈的实现也很简单,只需要一个一维数组和一个指向栈顶的变量top就可以了。我们通过变量top来对栈进行插入和删除操作。

    这种特殊的数据结构栈究竟有哪些作用呢?我们来看一个例子。“xyzyx”是一个回文字符串,所谓回文字符串就是指正读反读均相同的字符序列,如“***”、“记书记”、“aha”和“ahaha”均是回文,但“ahah”不是回文。通过栈这个数据结构我们将很容易判断一个字符串是否为回文。

    如果一个字符串是回文的话,那么它必须是中间对称,我们需要求这个字符串的中点,即:mid=len/2-1;
           接下来就轮到栈出场了。
           我们先将mid之前的部分的字符全部入栈。因为这里的栈是用来存储字符的,所以这里用来实现栈的数组类型是字符数组即char s[101]; 初始化栈很简单,top=0;就可以了。入栈的操作是top++;s[top]=x; (假设需要入栈的字符存储暂存在字符变量x中)其实可以简写为s[++top]=x;现在我们就来将mid之前的字符依次全部入栈。这里循环要0开始,读取的第一个字符存储在s[0]中,最后一个字符存储在s[mid-1]中。
     
      接下来进入判断回文的关键步骤。将当前栈中的字符依次出栈,看看是否能与mid之后的字符一一匹配,如果都能匹配则说明这个字符串是回文字符串,否则这个字符串就不是回文字符串。
     

    java.util.stack接口Stack<E>

    方法摘要
     boolean empty() 
              测试堆栈是否为空。
     E peek() 
              查看堆栈顶部的对象,但不从堆栈中移除它。
     E pop() 
              移除堆栈顶部的对象,并作为此函数的值返回该对象。
     E push(E item) 
              把项压入堆栈顶部。
     int search(Object o) 
              返回对象在堆栈中的位置,以 1 为基数。
  • 相关阅读:
    Java实现OPC通信
    OPCServer:使用KEPServer
    OPCServer:使用Matrikon OPC Server Simulation
    OPC和DCOM配置
    jquery中attr和prop的区别
    jquery 操作checkbox是否选中的正确方法
    GPRS RTU设备OPC Server接口C# 实现
    Raspberry Pi 中安装Mono
    C#中DllImport用法汇总
    HTML <form> 标签的 method 属性
  • 原文地址:https://www.cnblogs.com/caidi/p/5926172.html
Copyright © 2020-2023  润新知