Homework Introduction

1、栈(Stack)是一种线性存储结构,它具有如下特点:

(1)栈中的数据元素遵守“先进后出"(First In Last Out)的原则,简称FILO结构。(后进先出的叫法,也是可以的)

(2)限定只能在栈顶进行插入和删除操作。

2、栈的相关概念

(1)栈顶与栈底:允许元素插入与删除的一端称为栈顶,另一端称为栈底。

(2)压栈:栈的插入操作,叫做进栈,也称压栈、入栈。

(3)弹栈:栈的删除操作,也叫做出栈。

3、栈的常用操作

(1)弹栈,通常命名为pop

(2)压栈,通常命名为push

(3)求栈的大小

(4)判断栈是否为空

(5)获取栈顶元素的值

4、栈的常见分类

(1)基于数组的栈——以数组为底层数据结构时,通常以数组头为栈底,数组头到数组尾为栈顶的生长方向

(2)基于单链表的栈——以链表为底层的数据结构时,以链表头为栈顶,便于节点的插入与删除,压栈产生的新节点将一直出现在链表的头部。

5、实例分析

使用标准库的栈时, 应包含相关头文件,在栈中应包含头文件: #include< stack > 。
定义:stack< int > s;
s.empty();         //如果栈为空则返回true, 否则返回false; 
s.size();          //返回栈中元素的个数 
s.top();           //返回栈顶元素, 但不删除该元素 
s.pop();           //弹出栈顶元素, 但不返回其值 
s.push();          //将元素压入栈顶

Problem

Please claim the assignment to see the problems.
Status
Live...
Problem
9
Open Since
2025-9-7 0:00
Deadline
2025-9-15 23:59
Extension
24 hour(s)