这期内容当中小编将会给大家带来有关怎么在C#中利用栈实现加减乘除运算,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
阳西ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
类Parser 的parse方法,比如给一个“3+4i”的字符串,返回给你一个3个结点的队,队列第一个元素是一个ComplexNumber对象,实数域为3,队列的第二个元素是“+”号,队列第三个元素是一个ComplexNumber对象,实数域为0,虚数域为4。
类Operators 用于测试字符是否是运算符,用来进行控制运算,比较运算符优先级....
类Handler 给一个字符串,他帮你处理,返回给你一个结果。其实就是调一下Parser类的方法去解析一下字符串,然后算一下结果,然后返回结果。
类ComplexNumber,就是复数类啊,不用说了,提供实数域虚数域,getset方法,加减乘除以及toString()方法
using System;
using System.Collections;
using System.Text;
namespace MySpace{
class Parser{
public static Queue Parse(string input){
char[] arr = input.ToCharArray();
Queue queue = new Queue();
foreach(char x in arr){
queue.Enqueue(x);
}
queue = ParseStringQueue(queue);
return queue;
}
//传入字符串队列,返回封装好的队列。
//ComplexNumber对象或char类型运算符各占用一个结点
private static Queue ParseStringQueue(Queue queue){
Queue secondQ = new Queue();
char c;
StringBuilder sb = null;
string temp;
int count = queue.Count;
bool flag = false; //false表示允许创建新SB对象进行缓存数字字符串
for(int i=0;iDon_Yao整合修复一些bug后的代码
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
// 解析计算字符串公式
namespace CalcuStrFormula
{
// 处理类
class Handler
{
private Stack _complexNumberStack = new Stack();
private Stack _operatorStack = new Stack();
private Parser _parser = new Parser();
private Operators _operators = new Operators();
private static Handler _instance;
public static Handler instance
{
get
{
if (_instance == null)
{
_instance = new Handler();
}
return _instance;
}
}
public ComplexNumber Process(string inputString)
{
_complexNumberStack.Clear();
_operatorStack.Clear();
Queue
上述就是小编为大家分享的怎么在C#中利用栈实现加减乘除运算了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
网站名称:怎么在C#中利用栈实现加减乘除运算
分享网址:http://6mz.cn/article/iihjge.html