- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构栈和队列算法应用
* * * * * * * * * * * * * * * * * * * * * * * * * * * * 汉塔问题的栈递归模拟过程 hanoi(3, A, B, C) ; 第一次循环 2,A,C,B 1,A,B,C 2,B,A,C 3,A,B,C 汉诺塔问题 汉塔问题的栈递归模拟过程 hanoi(3, A, B, C) ; 第二次循环 2,B,A,C 1,A,B,C 1,A,C,B 1,C,A,B 1,A,B,C 2,B,A,C 汉诺塔问题 汉塔问题的栈递归模拟过程 hanoi(3, A, B, C) ; 第三次循环 1,B,C,A 1,B,A,C 1,A,B,C 汉诺塔问题 【例4】 设计算法输出二项式系数表(杨辉三角)的第n行序列。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 …………………… 4、杨辉三角形问题 解题分析 (1)问题的数学解法 这是一个初等数学中讨论的问题。系数表中的第 k行有 k+1个数,除了第一个和最后一个数为1之外,其余的数则为上一行中位其左、右的两数之和。 杨辉三角形问题 (2)选取数据结构 一种最直接的想法是利用两个数组,其中一个存放已经计算得到的第 k 行的值,然后输出第 k 行的值同时计算第 k+1行的值,并且这两个数组在计算过程中需相互交换。 若引入“循环队列”,则可以省略一个数组的辅助空间,而且可以利用队列的操作,使程序结构变得清晰,问题简化。 杨辉三角形问题 (3)算法描述 每行添加一个数字0,即作为行标记,又参与计算。 [1] 初始化队列,第1行(0,1,1)入队,计数器k赋初值 1; [2]当k n时,下一行0标记入队,否则,转[6]; 杨辉三角形问题 [3] 删除队头元素,并将其值与当前队头元素的值相加的和插入队列; [4] 判断是否换行,若否,转[3]; [5] k值加1,转[2]; [6] 删除队头元素0; [7] 输出第n行,结束。 杨辉三角形问题 输出二项式系数表的第n行 void yanghui ( int n ) { // 输出杨辉三角形的第 n( n1 )行 InitQueue(Q,n+2); // 设置最大容量为 n+2 的空队列 EnQueue(Q,0 ); // 添加行界值 EnQueue( Q,1); EnQueue( Q,1 ); // 第一行的值入队列 k = 1; 杨辉三角形问题 while ( k n ) { // 通过循环队列求前 n-1 行的值 EnQueue ( Q,0 ); // 下一行界值“0”入队列 do { // 输出第 k 行,计算第 k+1 行 杨辉三角形问题 Dequeue( Q,s ); GetHead( Q,e ); EnQueue(Q,s+e); //插入 } while (e!=0); //非换行 k++; //准备计算下一行 } // while DeQueue ( Q,e ); // 行界值0出队列 杨辉三角形问题 while (!QueueEmpty (Q) ) { // 单独处理第 n 行的值的输出 DeQueue ( Q,e ); printf(e); } // while} // yanghui? 容易看出此算法的时间复杂度为O (n2)。 杨辉三角形问题 假设只计算四行,则队列的最大容量为 5。 1 1 0 0 q.front q.rear 1 1 0 0 1 q.front q.rear 1 1 0 2 1 q.front q.rear 1 1 0 2 1 q.front q.rear 1 0 0 2 1 q.front q.rear 1 0 1 2 1 q.front q.rear 杨辉三角形问题 1 0 1 2 1 q.front q.rear 1 0 1 2 3 q.front
您可能关注的文档
- 数据会说话:春秋航空和三大航经营模式的差异.docx
- 数学高考复习实效性.ppt
- 数据分析与建模实验报告.doc
- 教育电视系统教案.ppt
- 数据分析技术.ppt
- 数据分析实战技能培训-excel使用技能提高.doc
- 数据中心基础知识培训(第一章).pptx
- 数据处理及报告编写.ppt
- 数据分析与EXCEL应用(上).pptx
- 数据库1-1-intro.ppt
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
最近下载
- Zkteco中控智慧万傲瑞达V6000_2.0.0用户手册(停车CS岗亭端).pdf
- 2023-2024学年江苏省淮安市清江浦区三校八年级(上)期中数学试卷.doc VIP
- 要拿我当一挺机关枪使用.docx
- 母婴三病培训.pptx VIP
- 管理信息系统题目_带答案.doc
- 《汽车侧面气囊和帘式气囊模块性能要求GBT+38795-2020》详细解读.pdf
- 初中班主任工作经验交流精美PPT课件.ppt VIP
- 探放水工考试卷及答案 .docx
- 【申论】公务员考试辅导·笔试系统讲义(2025国考版).docx
- 2023-2024学年江苏省淮安市盱眙县八年级(上)期中检测英语试卷(附答案详解).pdf VIP
文档评论(0)