算法与数据结构ppt课件.ppt
《算法与数据结构ppt课件.ppt》由会员分享,可在线阅读,更多相关《算法与数据结构ppt课件.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、S33.1 栈第三章.栈和队列 (Chapter 3.Stack and Queue)栈(stack)是插入和删除操作受限的线性表,是一种后进先出(Last In First Out-LIFO)的线性表。表头端称为栈底(bottom),表尾端称为栈顶(top),插入和删除都在栈顶进行。bottomtopS1S2S5S6S3S4S3S3S3S3S3PUSHPUSHPUSHPOPPUSHPUSHPUSH栈的基本操作:栈的基本操作:InistackClearGettopEmptyPushPop栈的实现:栈的实现:#define STACK_INIT_SIZE user_supply#define S
2、TACKINCREMENT user_supplytypedef struct elemtype *bottom;elemtype *top;int stackzise;sqstack;顺序存储结构表示栈Fulltypedef strcut lnode elemtype data;struct lnode *next;*linkedstack;链式存储结构表示栈-链栈(Linked_stack)上溢(上溢(overflow):):若栈的容量已全部用完,再进行插入操作(PUSH),就会发生上溢错误。下溢(下溢(underflow):):若栈已空,再进行删除操作(POP),就会发生下溢错误。3.2
3、 栈的应用-表达式求值 任一表达式(expression)都是由操作数(operand)、操作符(operator)和界限符(delimiter)组成。我们通常习惯使用中缀表达式(infix expression),但中缀表达式离不开括号(bracket)。若使用前缀表达式(prefix expression)或后缀表达式(postfix expression)则不需要括号。利用栈,可以将中缀表达式变为前缀表达式或后缀表达式,再用栈进行运算即可得到表达式的值(value)。3.3 栈与递归递归(递归(recursive):):一个程序直接调用自己或通过其它程序调用自己就称为递归。根据调用关系可
4、分为直接递归(direct recursive)和间接递归(indirect recursive)。第第 一一 次次 上上 机机 作作 业业 输入表达式字符串,以输入表达式字符串,以“=”表示表示结束,结束,计算并输出表达式值。计算并输出表达式值。操作数操作数可以是整数或实数,操作符有可以是整数或实数,操作符有“+”、“-”、“*”、“/”、“”(乘方)(乘方)和和“sin()”(正弦)、正弦)、“cos()”(余弦)、余弦)、“log()”(对数)、对数)、“ln()”(自然对数)等函数。自然对数)等函数。栈在程序的过程或函数调用中的作用:过程一过程二过程三过程四断点三断点一断点二断点一断点
5、二断点三stack调用子程序返回断点程序执行 递归是程序设计中一种强有力的工具。下面三种情况可用递归解决:1、有些数学函数是递归定义的,对其求解可用递归;2、有些数据结构具有递归特性,对其操作可用递归;3、有些问题的解决方法用递归描述,对其求解也可用递归。例:例:求阶乘(factorial):Fact(n)=1 当 n=0 nFact(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
6、)return S 1 ;/出口条件出口条件 x=Min(S,n-1);if (x S n )return m;return S n ;1、河内塔问题的解决方法应用的就是分治法;例:例:程序设计常用方法之二:程序设计常用方法之二:回溯法(回溯法(Backtracking)回溯法是一种满足一定条件的穷举搜索法:在求解过程中,不断利用可供选择的规则扩展部分解,一旦当前的部分解不成立,就停止扩展,退回到上一个较小的部分解继续试探,直到找到问题所有的解或无解为止。1、地图染色(四色定理)问题:例:例:000102030405060002060601050302040 1 1 1 1 1 01 0 0
7、0 0 1 01 0 0 1 1 0 01 0 1 0 1 1 01 0 1 1 0 1 01 1 0 1 1 0 00 0 0 0 0 0 00 1 2 3 4 5 6R0132456void MapColor (int R n n,int s n )s 0 =1;/00 区染区染 1 色色 i=1;j=1;/i 为区域号,为区域号,j 为染色号为染色号 while (i n)while (j 4)&(i n)k=0;/k 指示已染色区域号指示已染色区域号 while (k i)&(s k *R i k !=j)k+;/判相邻区是否已染色且不同色判相邻区是否已染色且不同色 if (k 4)j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 数据结构 ppt 课件
限制150内