📜  堆栈之和 c++ (1)

📅  最后修改于: 2023-12-03 14:51:37.790000             🧑  作者: Mango

堆栈之和

堆栈(stack)是计算机科学中的一种数据结构,它具有后进先出(LIFO)的特性。堆栈被广泛应用在程序中,用于处理函数调用、临时数据存储等场景。在 C++ 中,堆栈可以通过标准库中的 std::stack 类来实现。

堆栈的基本操作

堆栈通常支持以下基本操作:

  1. push(item): 将元素 item 推入堆栈的顶部。
  2. pop(): 弹出堆栈顶部的元素,并返回该元素。
  3. top(): 返回堆栈顶部的元素,但不对堆栈进行修改。
  4. empty(): 判断堆栈是否为空,如果为空则返回 true,否则返回 false。
  5. size(): 返回堆栈中元素的数量。
堆栈之和程序示例

以下是一个 C++ 程序示例,演示了如何使用堆栈来计算给定整数数组的元素之和。

#include <iostream>
#include <stack>
#include <vector>

int stackSum(std::vector<int>& nums) {
    std::stack<int> st;
    int sum = 0;

    for (int num : nums) {
        st.push(num);
    }

    while (!st.empty()) {
        sum += st.top();
        st.pop();
    }

    return sum;
}

int main() {
    std::vector<int> nums = {1, 2, 3, 4, 5};
    int sum = stackSum(nums);

    std::cout << "Sum of stack elements: " << sum << std::endl;

    return 0;
}

解释:

  1. 首先,在 stackSum 函数中创建了一个整数类型的堆栈 st 和一个整数类型的变量 sum,用于保存和计算结果。
  2. 接下来,使用 for 循环遍历给定的整数数组 nums,并将每个元素依次推入堆栈 st 中。
  3. 然后,使用 while 循环遍历堆栈 st,每次将堆栈顶部的元素取出并累加到 sum 中,然后将该元素从堆栈中弹出。
  4. 最后,返回计算得到的和 sum
  5. main 函数中,创建了一个包含整数元素的向量 nums,并将其传递给 stackSum 函数来计算堆栈元素之和。
  6. 最后,将计算结果打印到标准输出流中。

以上示例代码实现了一个简单的堆栈之和程序。你可以根据自己的需要修改输入数据和逻辑,以扩展该程序的功能。