- 17
- 0
- 约1.68万字
- 约 93页
- 2017-03-26 发布于湖北
- 举报
分析第 i 行元素与第 i+1行元素的关系如图所示 : 在i 2时,队列的头指针指向0,尾指针指向1的下一位,我们看如何 由第二行得到第三行的。①第三行的0入队②队头元素0出队并送入s中③取队头元素1并送入t中④s+t的值1入队。这时队列的队头指针指向1,队尾指针指向第三行的第一个3的位置。重复②③④三步就得到第三行;类推,我们由第三行又得到第四行;…… front rear 杨辉三角形元素入队顺序 0 0 0 0 0 0 假设n 4,i 3,则输出第3行元素并求解第4行元素值的循环执行过程中队列的变化状态如图所示 : void YangHui int n /*打印杨辉三角形的前n行*/ SeqQueue *q; int i, j,s,t; for i 1;i n;i++ printf ; printf 1\n ; /*在中心位置输出杨辉三角最顶端的1*/ q InitQueue ; /*设置容量为n+2的空队列*/ EnQueue q,0 ; /*添加行分隔符,即0入队*/ EnQueue q,1 ;EnQueue q,1 ; /*第一行的值入队*/ 1、出队并保存出队元素 2、取出front所指元素并保存 3、计算前两步得到的元素值之和并入队 重复这三步。(当由第i行求得第i+1行时,0先入队……) 上图的操作过程是: for j 1;j n;j++ /*利用循环队列输出前n-1行的值*/ for i 1;i n-j;i++ /*在输出第j行的首元素之间输出n-j个空格*/ printf ; EnQueue q,0 ; /*行分隔符0入队*/ do /*输出第j行并计算第j+1行*/ s DeQueue q ; /*删除队头元素并赋给s*/ t GetHead q ; /*取队头元素给t*/ if t printf %5 d,t ; /*若不到行分隔符0,则输出t,再输出一个空格*/ else printf \n ; /*否则输出一个换行符*/ EnQueue q,s+t ; /*将第j+1行的对应元素s+t入队*/ while t! 0 ; DeQueue q ; /* 删除行分隔符 */ printf %3d,DeQueue q ; /* 输出第n行的第一个元素 */ while !QueueEmpty q /* 输出第n行的其余元素 */ t DeQueue q ; printf “%5 d,t ; 输出杨辉三角形的最后一行()第n行 2、迷宫问题: 寻找一条从迷宫入口到出口的最短路径 迷宫问题是实验心理学的一个经典问题,心理学家把一只老鼠从一个无顶盖的迷宫入口处赶进迷宫,在迷宫的出口处设置了一块奶酪,吸引老鼠在迷宫中寻找通路以到达出口。对同一只老鼠重复进行上述实验,一直到老鼠从入口到出口,而不走错一步。老鼠经多次实验终于得到学习走通迷宫的路线。 算法分析 如果用计算机来处理:求出一条从入口到出口的通路,或者得出没有通路的结论。通常采用一种称为回溯法的方法,即不断试探且及时纠正错误的搜索方法,这需要借助“栈”来实现。此法在许多书中都有介绍,在此不再赘述。 如果在一般走迷宫的方法上,更进一步要求不论试探方位为何,找出一条最短路径,那该如何解决呢?其算法的基本思想是:从迷宫的入口[1][1]出发,向四周搜索,记下所有一步能到达的坐标点;然后依次从每一点出发,向四周搜索,记下所有从入口点出发,经过两步可以到达的坐标点……依次进行下去,一直到达迷宫的出口处[m][n]。然后从出口处沿搜索路径回溯直到入口点,这样就找到了从入口到出口的一条最短路径。 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 入口 出口 迷宫 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 加哨兵后的迷宫 我们可以使用如下的数据结构:maze[1..m,1..n]表示迷宫,为了算法方便,在四周加上“哨兵‘1’”即变为数组maze[1..m+1,1..n+1],如右图所示。用结构数组move[8]中的两个域dx,dy分别表示X,Y方向的移动增量 方向 下标 dx dy 北 0 -1 0 东北 1 -1 1 东 2 0 1 东
您可能关注的文档
- 投掷实心球课件详解.ppt
- 投掷实心球详解.ppt
- 探析如何维护婚姻关系详解.ppt
- 探寻海上仙都太姥山惊呼详解.doc
- 探寻伤寒论的研究方法详解.ppt
- 投资与融资详解.ppt
- 探寻五邮件挺击战——学会利用E-mail进行营销详解.ppt
- 探寻与聆听详解.ppt
- 透皮技术及直肠给药详解.doc
- 碳纳米管纸-轻化112刘仰勋1101050208详解.ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
原创力文档

文档评论(0)