- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1节 数据结构概述 栈和队列 栈的应用举例 栈在表达式计算过程中的应用 :建立操作数栈和运算符栈。运算符有优先级。规则: 自左至右扫描表达式,凡是遇到操作数一律进操作数栈。 当遇到运算符时,如果它的优先级比运算符栈栈顶元素的优先级高就进栈。反之,取出栈顶运算符和操作数栈栈顶的连续两个操作数进行运算,并将结果存入操作数栈,然后继续比较该运算符与栈顶运算符的优先级。 左括号一律进运算符栈,右括号一律不进运算符栈,取出运算符栈顶运算符和操作数栈顶的两个操作数进行运算,并将结果压入操作数栈,直到取出左括号为止。 自左至右扫描表达式,凡是遇到操作数一律进操作数栈。 当遇到运算符时,如果它的优先级比运算符栈栈顶元素的优先级高就进栈。反之,取出栈顶运算符和操作数栈栈顶的连续两个操作数进行运算,并将结果存入操作数栈,然后继续比较该运算符与栈顶运算符的优先级。 左括号一律进运算符栈,右括号一律不进运算符栈,取出运算符栈顶运算符和操作数栈顶的两个操作数进行运算,并将结果压入操作数栈,直到取出左括号为止例如 : 计算 ( 4+8 )×2-3 ; 操作数栈 :4 8 | 12 2 |24 3 |21 运算符栈 :( + |× |- | 操作数栈 运算符栈 ( 4+8 )×2-3 4+8 )×2-3 ( +8 )×2-3 4 8 )×2-3 + )×2-3 8 ×2-3 4+8=12 12 2-3 × -3 2 3 12X2=24 - 24 3 24-3=21 栈和队列 循环队列 Q.front=0 Q.rear=0 1 2 3 4 5 0 队空 1 2 3 4 5 0 front J1,J1,J3入队 J1 J2 J3 rear rear 1 2 3 4 5 0 J4,J5,J6入队 J4 J5 J6 front 设两个指针front,rear,约定: Q.rear指示队尾元素的下一个位置; Q.front指示队头元素 初值Q.front=Q.rear=0 空队列条件:front==rear 入队列:sq[rear++]=x; 出队列:x=sq[front++]; rear rear front rear 1 2 3 4 5 0 J1,J2,J3出队 J1 J2 J3 front front front A B C D E F G H K 例如: 先序序列: 中序序列: 后序序列: A B C D E F G H K B D C A E H G K F D C B H K G F E A 二叉树的遍历 先序遍历算法 若二叉树为空树,则空操作;否则 访问根结点 先序遍历左子树 先序遍历右子树 二叉树的遍历 先序遍历算法 void PREORDER ( bitree *r) { if ( r = = NULL ) return ; //空树返回 printf ( “ %c ”,r-data ) //先访问当前结点 PREORDER( r-lchild ); //再访问该结点的左子树 PREORDER( r-rchild ); //最后访问该结点右子树 } PREORDER ( bitree *r) { if ( r = = NULL ) return ; printf ( %c ,r-data ); PREORDER ( r-lchild ); PREORDER ( r-rchild ); } 主程序 Pre(T) 返回 返回 pre(T R); 返回 返回 pre(T R); A C B D T B printf(B); pre(T L); B T A printf(A); pre(T L); A T D printf(D); pre(T L); D T C printf(C); pre(T L); C 返回 T 左是空返回 pre(T R); T 左是空返回 T 右是空返回 T 左是空返回 T 右是空返回 pre(T R); 先序序列:A B D C 二叉树的遍历 深度优先搜索算法 深度优先搜索(Depth First Search,简称DFS) 1.算法思路 类似树的先根遍历。设初始时,图中各顶点均未被访问,从图中某顶点(设为V0)出发,访问V0,然后搜索V0的一个邻接点Vi,若Vi未被访问,则访问之,再搜索Vi的一个邻接点(深度优先)……。若某顶点的邻接点全部访问完毕,则回溯(Backtracking)到它的上一顶点,然后再从此顶点又按深度优先的方法搜索下去,……,直到能访问的顶点都访问完毕为止。 深度优先搜索算法 例5-9 设有一无向图G10,其DFS搜索过程如图5.20所示。 5 1 4 4 2 6 V5 3 V7 2 0 V6 V2
您可能关注的文档
- 团购业务开展流程.ppt
- 直线 射线和角教学课件.ppt
- 设计院青年员工业务技能考核汇报.pptx
- 表卡工具使用标准幻灯片.ppt
- 业务流程与展业方式幻灯片.pptx
- 宝贝回家记学生范例模板.ppt
- 财富好计划互联网业务设计.pptx
- 航安安全管理系统培训风险管理.ppt
- T泰置业项目-案例分享.pptx
- 广电行业BOSS3.0解决方案简介及销售指南.pptx
- 2026年投资项目管理师之宏观经济政策考试题库300道附答案【精练】.docx
- 超星尔雅学习通《形势与政策(2025春)》章节测试附完整答案(网校专用).docx
- 超星尔雅学习通《形势与政策(2025春)》章节测试带答案(研优卷).docx
- 超星尔雅学习通《形势与政策(2026春)》章节测试题附参考答案(实用).docx
- 2026年刑法知识考试题库a4版.docx
- 2026年刑法知识考试题库标准卷.docx
- 2026福建泉州市面向华南理工大学选优生选拔引进考试题库新版.docx
- 2026年国家电网招聘之文学哲学类考试题库300道含完整答案(夺冠).docx
- 2026年法律职业资格之法律职业客观题一考试题库300道含答案【巩固】.docx
- 2026年刑法知识考试题库【精练】.docx
原创力文档


文档评论(0)