没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
22页
实验三 栈和队列 3.1实验目的: (1) 熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等,掌握栈的基本操作在栈的顺序存储结构和链式存储结构上的实现; (2) 熟悉队列的特点(先进先出)及队列的基本操作,如入队、出队等,掌握队列的基本操作在队列的顺序存储结构和链式存储结构上的实现。 3.2 实验要求: (1) 复习课本中有关栈和队列的知识; (2) 用C语言完成算法和程序设计并上机调试通过; (3) 撰写实验报告,给出算法思路或流程图和具体实现(源程序)、算法分析结果(包括时间复杂度、空间复杂度以及算法优化设想)、输入数据及程序运行结果(必要时给出多种可能的输入数据和运行结果)。
资源推荐
资源详情
资源评论
实验三 栈和队列
3.1 实验目的:
() 熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等,掌握栈的基本操作
在栈的顺序存储结构和链式存储结构上的实现;
() 熟悉队列的特点(先进先出)及队列的基本操作,如入队、出队等,掌握队列的基
本操作在队列的顺序存储结构和链式存储结构上的实现。
3.2 实验要求:
() 复习课本中有关栈和队列的知识;
() 用 语言完成算法和程序设计并上机调试通过;
() 撰写实验报告,给出算法思路或流程图和具体实现(源程序)、算法分析结果(包
括时间复杂度、空间复杂度以及算法优化设想)、输入数据及程序运行结果(必要
时给出多种可能的输入数据和运行结果)。
3.3 基础实验
[实验 1] 栈的顺序表示和实现
实验内容与要求
编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能:
()初始化顺序栈
()插入元素
()删除栈顶元素
()取栈顶元素
()遍历顺序栈
()置空顺序栈
分析:
栈的顺序存储结构简称为顺序栈它是运算受限的顺序表。
对于顺序栈,入栈时,首先判断栈是否为满,栈满的条件为:,栈满
时,不能入栈否则出现空间溢出,引起错误,这种现象称为上溢。
出栈和读栈顶元素操作,先判栈是否为空,为空时不能操作,否则产生错误。通常栈空作
为一种控制转移的条件。
注意:
()顺序栈中元素用向量存放
()栈底位置是固定不变的,可设置在向量两端的任意一个端点
()栈顶位置是随着进栈和退栈操作而变化的,用一个整型量 (通常称 为栈顶指
针)来指示当前栈顶位置
参考程序:
!"
#!"
$%
$&'()
*+定义顺序栈的存储结构+*
)$ ,
- &'() ./01
2343./
*+初始化顺序栈+*
563./7343./+8
- $798
,$7:&,,,:8
2
*+入栈+*
5; "7343./+&'()<8
- $78
- =
./01<
2
,$7:>5,$?9@:8
2
*+出栈+*
&'();7343./+8
- &'()<
$79%8
- < ./01
,$7:以前的栈顶数据元素A 已经被删除!@: ./018
,,7<8
2
- ,$7:,$?9@:8
,,7%8
2
2
*+获取栈顶元素+*
&'()B(7343./+8
- &'()<
$79%8
- < ./01
,,7<8
2
- ,$7:,$?9@:8
,,7%8
2
2
*+遍历顺序栈+*
5>3./7343./+8
-
,$7:@:8
$7%8
,$7:这是一个空栈!:8
,$7:@:8
$,7%8
,$7:第A 个数据元素是:A@: ./018
2
*+置空顺序栈+*
5 &')7343./+8
-
2
*+主函数+*
'.78
-343./+4
),&'().
-
,$7:@:8
,$7:第一次使用必须初始化!@:8
,$7:@:8
,$7:@主菜单@:8
,$7:@初始化顺序栈@:8
,$7:@插入一个元素@:8
,$7:@删除栈顶元素@:8
,$7:@取栈顶元素@:8
,$7:@置空顺序栈@:8
,$7:@结束程序运行@:8
,$7:@@:8
,$7:请输入您的选择78:8
.$7:A:C,8
,$7:@:8
?"7,8
- .
- 47343./+8'.7 D$7343./88
63./748
>3./748
2#,./
.
- ,$7:请输入要插入的数据元素:.:8
.$7:A:C.8
; "74.8
>3./748
2#,./
.
- ;748
>3./748
2#,./
.
- )B(748
,$7:@ 栈顶元素为:A@:)8
>3./748
2#,./
.
- &')748
,$7:@ 顺序栈被置空!@:8
>3./748
2#,./
.
<7%8
2
2?"7,8
2
[实验 2] 栈的链式表示和实现
实验内容与要求
编写一个程序实现链栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能:
()初始化链栈
()链栈置空
()入栈
()出栈
()取栈顶元素
()遍历链栈
分析
链栈是没有附加头结点的运算受限的单链表。栈顶指针就是链表的头指针。
注意:
()E/3./ 结构类型的定义可以方便地在函数体中修改 指针本身
()若要记录栈中元素个数,可将元素个数属性放在 E/3./ 类型中定义。
()链栈中的结点是动态分配的,所以可以不考虑上溢。
参考程序:
: !":
:'.!":
: #!":
)$&')
)$ , ./-
&')..
./+<
23./
)$ ,-
./+**栈顶指针
2E/3./
*+初始化链栈+*
563./7E/3./+ 8
- EE
,$7:@ 已经初始化链栈!@:8
2
*+链栈置空+*
5 &')7E/3./+ 8
- EE
,$7:@ 链栈被置空!@:8
2
*+入栈+*
5 "E ./7E/3./+ &')<8
- 3./+
73./+8'.7 D$73./88**建立一个节点。
..<
< **由于是在栈顶 "E ./,所以要指向栈顶。
**插入
2
*+出栈+*
&')E ./7E/3./+ 8
- &')<
3./+
**指向栈顶
$7 %8
- ,$7:@ 栈空,不能出栈!@:8
<78
2
<..
<**当前的栈顶指向原栈的 <
$,78**释放
,,<
2
剩余21页未读,继续阅读
ialva
- 粉丝: 16
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 记录了贪心,动态规划等算法基本思想与设计.zip
- 基于菲阿里基本模型,以及MACD RSI BooL 等技术指标 构建一套基于贪心算法策略的智能投顾模型.zip
- oj算法代码-贪心算法.zip
- 基于yolov8行人检测源码+模型.zip
- 公开整理-地级市-绿色专利申请、授权数据集(2000-2022年).xlsx
- 基于Transformer模型的图像质量评分模型实现源码+详细说明文档.zip
- CST电磁场仿真+线性螺旋电感+建模步骤细节和RLC端口配置+CST高级建模操作
- 大数据库实验的报告材料材料(word文档良心出品).doc
- AIS2024 valid
- 最入门的爬虫代码 python.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页