📅  最后修改于: 2023-12-03 14:51:37.790000             🧑  作者: Mango
堆栈(stack)是计算机科学中的一种数据结构,它具有后进先出(LIFO)的特性。堆栈被广泛应用在程序中,用于处理函数调用、临时数据存储等场景。在 C++ 中,堆栈可以通过标准库中的 std::stack 类来实现。
堆栈通常支持以下基本操作:
push(item)
: 将元素 item
推入堆栈的顶部。pop()
: 弹出堆栈顶部的元素,并返回该元素。top()
: 返回堆栈顶部的元素,但不对堆栈进行修改。empty()
: 判断堆栈是否为空,如果为空则返回 true,否则返回 false。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;
}
解释:
stackSum
函数中创建了一个整数类型的堆栈 st
和一个整数类型的变量 sum
,用于保存和计算结果。for
循环遍历给定的整数数组 nums
,并将每个元素依次推入堆栈 st
中。while
循环遍历堆栈 st
,每次将堆栈顶部的元素取出并累加到 sum
中,然后将该元素从堆栈中弹出。sum
。main
函数中,创建了一个包含整数元素的向量 nums
,并将其传递给 stackSum
函数来计算堆栈元素之和。以上示例代码实现了一个简单的堆栈之和程序。你可以根据自己的需要修改输入数据和逻辑,以扩展该程序的功能。