当前位置: 首页 > article >正文

使用堆栈(Stack)

集合类型(Collection)下篇_xml collection-CSDN博客

以上是堆栈的简单介绍,下方是堆栈的使用

题目:给定一个逆波兰表达式(后缀表达式)的字符串数组tokens,其中每个元素是一个操作数(数字)或者操作符(+-*/)。使用Stack<double>来计算表达式的值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 逆波兰表达式
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string[] tokens = { "3", "7", "+", "6", "*" };
            Console.WriteLine(EvaluatePostfix(tokens));
        }
        static double EvaluatePostfix(string[]tokens)
        {
            Stack<double> stack = new Stack<double>();
            foreach (string token in tokens)
            {
                if(double.TryParse(token,out double num))
                {
                    stack.Push(num);
                }
                else
                {
                    double operand2 = stack.Pop();
                    double operand1 = stack.Pop();
                    switch (token)
                    {
                        case "+":
                            stack.Push(operand1 + operand2);
                            break;
                        case "-":
                            stack.Push(operand1 - operand2);
                            break;
                        case "*":
                            stack.Push(operand1 * operand2);
                            break;
                        case "/":
                            stack.Push(operand1 / operand2);
                            break;
                    }
                }
            }
            return stack.Pop();
        }
    }
}


http://www.kler.cn/a/427718.html

相关文章:

  • 软件体系结构复习-02 软件体系结构定位及构建
  • k8s-golang获取健康状态ip
  • 如何将 Docker 镜像打包为 ZIP 文件便于分享和转发
  • 重生之我在异世界学编程之C语言:深入指针篇(下)
  • Leetcode—999. 可以被一步捕获的棋子数【简单】
  • 工业检测基础-工业相机选型及应用场景
  • 浏览器插件上架流程
  • JavaScript 函数初体验
  • 网络互联技术——VLAN 、VTP技术
  • Flutter:商品多规格内容总结,响应式数据,高亮切换显示。
  • 单片机的中断系统
  • python编程Day12-属性和方法的分类
  • JavaWeb学习(2)(Cookie原理(超详细)、HTTP无状态)
  • 【触想智能】工业安卓一体机日常维护注意事项以及其应用领域分析
  • 基于Matlab的变压器仿真模型建模方法(8):三相变压器组的建模仿真
  • STORM写作系统用于多角度话题大纲的合成与检索
  • 了解 k8s 网络基础知识
  • 从excel数据导入到sqlsever遇到的问题
  • 第2章:CSS基本语法 --[CSS零基础入门]
  • 推荐在线Sql运行