1 / 29
文档名称:

数据结构和算法.ppt

格式:ppt   页数:29
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构和算法.ppt

上传人:pk5235 2015/9/7 文件大小:0 KB

下载得到文件列表

数据结构和算法.ppt

相关文档

文档介绍

文档介绍:S3
§ 栈
第三章. 栈和队列(Chapter 3. Stack and Queue)
栈(stack)是插入和删除操作受限的线性表,是一种后进先出(Last In First Out -- LIFO)的线性表。表头端称为栈底(bottom),表尾端称为栈顶(top),插入和删除都在栈顶进行。
bottom
top
S1
S2
S5
S6
S3
S4
S3
S3
S3
S3
S3
PUSH
PUSH
PUSH
POP
PUSH
PUSH
PUSH
栈的基本操作:
Inistack
Clear
Gettop
Empty
Push
Pop
栈的实现:
#define STACK_INIT_SIZE user_supply
#define STACKINCREMENT user_supply
typedef struct {
elemtype * bottom ;
elemtype * top ;
int stackzise ;
} sqstack ;
顺序存储结构表示栈
Full
typedef strcut lnode {
elemtype data ;
struct lnode * next ;
} * linkedstack;
链式存储结构表示栈----链栈(Linked_stack)
上溢(overflow):若栈的容量已全部用完,再进行插入操作(PUSH),就会发生上溢错误。
下溢(underflow):若栈已空,再进行删除操作(POP),就会发生下溢错误。
§ 栈的应用----表达式求值
任一表达式(expression)都是由操作数(operand)、操作符(operator)和界限符(delimiter)组成。
我们通常习惯使用中缀表达式(infix expression),但中缀表达式离不开括号(bracket)。若使用前缀表达式(prefix expression)或后缀表达式( postfix expression)则不需要括号。利用栈,可以将中缀表达式变为前缀表达式或后缀表达式,再用栈进行运算即可得到表达式的值(value)。
§ 栈与递归
递归(recursive):一个程序直接调用自己或通过其它程序调用自己就称为递归。根据调用关系可分为直接递归(direct recursive)和间接递归(indirect recursive )。
第一次上机作业
输入表达式字符串,以“=”表示结束, 计算并输出表达式值。操作数可以是整数或实数,操作符有“+”、“-”、“*”、“/”、“^”(乘方)和“sin( )”(正弦)、“cos( )”(余弦)、“log( )”(对数)、“ln( )”(自然对数)等函数。
栈在程序的过程或函数调用中的作用:
过程一
过程二
过程三
过程四









断点一
断点二
断点三
stack
调用子程序
返回断点
程序执行
递归是程序设计中一种强有力的工具。下面三种情况可用递归解决:
1、有些数学函数是递归定义的,对其求解可用递归;
2、有些数据结构具有递归特性,对其操作可用递归;
3、有些问题的解决方法用递归描述,对其求解也可用递归。
例:
求阶乘(factorial):
Fact(n) =
1 当 n = 0
n·Fact(n-1) 当 n > 0
{
int Fact ( int n ) {
if ( ! n ) return 1 ; // 出口条件
return n * Fact ( n – 1 ) ; // 递归调用部分
}
例:
求 n 个数的最小值:
int Min ( sqlist S, int n )
{
if ( n==1 ) return S [ 1 ] ; // 出口条件
x = Min ( S, n-1 );
if ( x < S [ n ] ) return x;
else return S [ n ] ; // 递归调用部分
}
例:
河内塔(Hanoi Tower)问题求解:
A
B
C
A
B
C
如何解决这个问题呢?真伤脑筋啊!
题目要求:1、将 n 个盘子从 A 柱移到 B 柱,C 柱可用;
2、每次只能移动一个盘子;
3、在移动过程中,不得将大盘压在小盘上。
解决该问题可分三步走:
1、将 A 柱上面的 n-1 个盘子从 A 柱移到 C 柱;
2、将第 n 个盘子从 A 柱移到 B 柱;
3、再将 C 柱上面的 n-1 个盘子移到 B 柱。
void Hanoi ( int n , i

最近更新

2025年梅县幼儿园教师招教考试备考题库及答案.. 31页

2025年永修县幼儿园教师招教考试备考题库附答.. 31页

2025年江苏航空职业技术学院单招职业技能考试.. 44页

2025年沈阳化工大学马克思主义基本原理概论期.. 12页

2025年河南牧业经济学院马克思主义基本原理概.. 12页

2025年济宁职业技术学院单招职业倾向性测试题.. 45页

2025年海南艺术职业学院马克思主义基本原理概.. 12页

2025年湖南大众传媒职业技术学院马克思主义基.. 12页

2026年中医住培带教师资理论考核题库100道附答.. 39页

2026年医学微生物学习题集【典型题】 40页

2025年眉山药科职业学院马克思主义基本原理概.. 13页

2026年网络安全知识竞赛题库及参考答案【轻巧.. 39页

小学历史与文化知识竞赛题库100道及参考答案(.. 37页

新安全生产法知识竞赛试题库及完整答案 43页

2025年重庆资源与环境保护职业学院马克思主义.. 12页

2026年主管中药师考试备考题100道完整 37页

2026年中医住培带教师资理论考核题库100道含答.. 40页

2026年主管中药师考试备考题100道含答案【基础.. 38页

2026年医学微生物学习题集含答案 40页

最新全国政法队伍教育整顿知识竞赛试题库及完.. 40页

新安全生产法知识竞赛试题库含答案(考试直接.. 43页

2025年分子诊断试剂项目合作计划书 65页

第6章转让定价的税务管理(国际税收(第二版-朱.. 44页

第7章安全协议合同协议表格模板实用文档 69页

2025年长沙幼儿师范高等专科学校单招综合素质.. 45页

2025广东中山市人民政府民众街道办事处招聘合.. 49页

2025广西南宁市青秀区融媒体中心招聘2人备考题.. 44页

2025泉州市医学会招聘工作人员2人考试参考题库.. 45页

2025贵州黔东南州锦屏县选聘城市社区工作者10.. 49页

2026年c语言基础考试题库(夺分金卷) 13页