数据结构之栈stack
什么是栈?
栈的基本特点
栈是如何工作的
栈的实现
栈的应用
什么是栈?
栈是一种“后进先出”(LIFO)的线性数据结构,是一种特殊的线性表。
栈的基本特点
在栈中,元素的添加和删除操作只能在表的一端进行,即栈顶。
元素的添加和删除遵循“后进先出”(LIFO)的原则,最后添加的元素总是最先出栈
栈对元素的访问加以限制,仅仅提供对栈顶元素的访问操作
栈是如何工作的?
在栈中,当栈有新元素加入时,将元素放入栈中,同时将栈顶top值加一,使其始终指向栈顶,当元素出栈时,栈顶top值减一,使其继续指向栈顶,直到top值为-1时,栈为空。
栈的实现
栈做为一种线性表,其实现方式主要有两种:数组和链表;
数组方式实现栈
对于数组方式实现栈来说,其栈顶top指向其当前为位置,当栈为空是,top = -1,用此可以判断栈是否为空,
使用C++标准模板库vector实现栈,以简单数据类型int为栈的数据元素进行实现:
头文件定义
#ifndef STACK_H_
#define STACK_H_
#include <vector>
using namespace std;
class Stack {
public:
Stack();
Stack(int