算法与数据结构ppt课件.ppt
《算法与数据结构ppt课件.ppt》由会员分享,可在线阅读,更多相关《算法与数据结构ppt课件.ppt(26页珍藏版)》请在三一办公上搜索。
1、3.1 栈,第三章. 栈和队列 (Chapter 3. Stack and Queue),栈(stack)是插入和删除操作受限的线性表,是一种后进先出(Last In First Out - LIFO)的线性表。表头端称为栈底(bottom),表尾端称为栈顶(top),插入和删除都在栈顶进行。,bottom,top,栈的基本操作:,Inistack,Clear,Gettop,Empty,Push,Pop,栈的实现:,#define STACK_INIT_SIZE user_supply#define STACKINCREMENT user_supplytypedef struct elemty
2、pe * bottom ; elemtype * top ; int stackzise ; sqstack ;,顺序存储结构表示栈,Full,typedef strcut lnode elemtype data ; struct lnode * next ; * linkedstack;,链式存储结构表示栈-链栈(Linked_stack),上溢(overflow):若栈的容量已全部用完,再进行插入操作(PUSH),就会发生上溢错误。,下溢(underflow):若栈已空,再进行删除操作(POP),就会发生下溢错误。,3.2 栈的应用-表达式求值,任一表达式(expression)都是由操作
3、数(operand)、操作符(operator)和界限符(delimiter)组成。,我们通常习惯使用中缀表达式(infix expression),但中缀表达式离不开括号(bracket)。若使用前缀表达式(prefix expression)或后缀表达式( postfix expression)则不需要括号。利用栈,可以将中缀表达式变为前缀表达式或后缀表达式,再用栈进行运算即可得到表达式的值(value)。,3.3 栈与递归,递归(recursive):一个程序直接调用自己或通过其它程序调用自己就称为递归。根据调用关系可分为直接递归(direct recursive)和间接递归(indir
4、ect recursive )。,第 一 次 上 机 作 业 输入表达式字符串,以“=”表示结束, 计算并输出表达式值。 操作数可以是整数或实数,操作符有 “+”、“-”、“*”、“/”、“”(乘方)和 “sin( )”(正弦)、“cos( )”(余弦)、“log( )”(对数)、“ln( )”(自然对数)等函数。,栈在程序的过程或函数调用中的作用:,过程一,过程二,过程三,过程四,断点一,断点二,断点三,stack,递归是程序设计中一种强有力的工具。下面三种情况可用递归解决:,1、有些数学函数是递归定义的,对其求解可用递归;,2、有些数据结构具有递归特性,对其操作可用递归;,3、有些问题的解
5、决方法用递归描述,对其求解也可用递归。,int Fact ( int n ) if ( ! n ) return 1 ; / 出口条件 return n * Fact ( n 1 ) ; / 递归调用部分,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 ; / 递归调用部分,如何解决这个问题呢?真伤脑筋啊!,解决该问题可分三步走:,1、将 A 柱上面的 n-1 个盘子从 A 柱移到 C 柱;,2、将第 n 个
6、盘子从 A 柱移到 B 柱;,3、再将 C 柱上面的 n-1 个盘子移到 B 柱。,void Hanoi ( int n , int x, int y, int z) If ( n ) / 出口条件 Hanoi ( n 1 , x, z, y ) ; / 递归调用部分 Move ( n, x, y ) ; Hanoi ( n - 1, z, y, x); ,求费波拉契数列(Fibonacci)、迷宫问题(Maze)、八皇后(Eight Queens)、骑士遍历(Cavalier travel)等等。,以下这些问题也可用递归程序解决:,程序设计常用方法之一:分治法(Divide and Conq
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 数据结构 ppt 课件

链接地址:https://www.31ppt.com/p-1548856.html