विषय पर बढ़ें

अंतिम अद्यतन:2026-10-12

C++ stack calculator design

एक stack calculator लिखें, design इस प्रकार है:

  • +, -, *, / operations का समर्थन
  • Postfix input का समर्थन

उदाहरण के लिए:

2 3 +
आउटपुट:
5
इसे implement कैसे करें?

इसमें सबसे key दो प्रश्न:

1.Tokenization कैसे करें

2.Stack कैसे implement करें

1.Tokenization कैसे करें

सबसे पहले define करें कि input एक string है, space separated, फिर हम istringstream से हर token split कर सकते हैं, basic framework है:

std::istringstream iss(expression);
std::string token;
while (iss >> token) {
}

2.Stack कैसे implement करें

Calculator के लिए सबसे केंद्रीय चीज़ है push और pop।

  • Number मिले तो push करें
  • Operator मिले तो pop करके calculate करें

हम framework लिख सकते हैं:

if (isNumber(token)) {
  pushNumber(token);
} else if (isOperator(token)) {
  popAndCal(token);
} else {
  throw std::runtime_error("Invalid token in expression.");
}

popAndCal calculation का core है, जैसे:

void popAndCal(const std::string& token) {
  if (operandStack.size() < 2) {
    throw std::runtime_error("Invalid expression.");
  } else {
    double operand2 = operandStack.top();
    operandStack.pop();
    double operand1 = operandStack.top();
    operandStack.pop();
    double result = performOperation(operand1, operand2, token);
    operandStack.push(result);
  }
}

इस तरह stack में हमारा इच्छित परिणाम store हो गया, अंत में top return कर दें।

बहुत सरल है न, मेरे साथ चर्चा करने के लिए स्वागत है।

संबंधित विषय

टिप्पणियाँ