在计算机科学领域,我们致力于各种程序。他们每个人都有自己的域和实用程序。根据程序创建的目的和环境,我们有大量数据结构可供选择。其中之一是"堆栈"。在讨论这种数据类型之前,让我们看一下它的语法。
template<class T, class Container = deque<T> > class stack;
此数据结构适用于LIFO技术,其中LIFO代表后进先出。首先插入的元素将在末尾提取,依此类推。有一个称为"顶部"的元素,它是位于最高位置的元素。所有插入和删除操作都是在堆栈的顶部元素本身进行的。
应用区域中的堆栈暗示为集合适配器。
集合应支持以下操作列表:
T - 该参数指定集合适配器将保留的元素的类型。
Container - 该参数指定用于存放堆栈元素的集合内部对象。
下面给出了堆栈类型的列表,并对其进行了简短描述。
类型 | Description |
---|---|
value_type | 指定了元素类型。 |
container_type | 指定了基础集合类型。 |
size_type | 它指定元素的大小参数。 |
借助函数,可以在编程领域中使用对象或变量。堆栈提供了大量可以在程序中使用或嵌入的函数。相同的列表如下:
函数 | 说明 |
---|---|
(con)structor | 该函数用于构建堆栈集合。 |
empty | 该函数用于测试堆栈是否为空。如果堆栈为空,则函数返回true,否则返回false。 |
size | 该函数返回堆栈集合的大小,它是对堆栈中存储的元素数量的度量。 |
top | 该函数用于访问堆栈的顶部元素。该元素起着非常重要的作用,因为所有插入和删除操作都是在顶部元素执行的。 |
pop | 该函数用于在堆栈顶部插入新元素 |
#include <iostream> #include <stack> using namespace std; void newstack(stack <int> ss) { stack <int> sg = ss; while (!sg.empty()) { cout << '\t' << sg.top(); sg.pop(); } cout << '\n'; } int main () { stack <int> newst; newst.push(55); newst.push(44); newst.push(33); newst.push(22); newst.push(11); cout << "The stack newst is : "; newstack(newst); cout << "\n newst.size() : " << newst.size(); cout << "\n newst.top() : " << newst.top(); cout << "\n newst.pop() : "; newst.pop(); newstack(newst); return 0; }
输出:
The stack newst is : 11 22 33 44 55 newst.size() : 5 newst.top() : 11 newst.pop() : 22 33 44 55
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)