题目描述: 给定一个二叉树,返回它的 前序 遍历。 示例: 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 数据结构定义: 算法思想: 分析总结: ...
分类:
编程语言 时间:
2018-11-07 11:36:21
阅读次数:
149
题目描述: 给定一个二叉树,返回它的 后序 遍历。 示例: 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 数据结构定义: 算法思想: 分析总结: ...
分类:
编程语言 时间:
2018-11-07 11:28:07
阅读次数:
199
1、问题描述: 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 2、算法描述: for(i=1;i<=n;i++){ for(j=1;j<=i;j++){ cin>>a[i][j]; ...
分类:
其他好文 时间:
2018-11-04 21:23:27
阅读次数:
139
递归算法是一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型而复杂的问题晨晨转化成与原问题相似的,规模较小的问题来解决,一般来说,递归需要边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进,当递归条件满足时,递归返回。在使用递归时必须要有明确的结束条件,称为递 ...
分类:
编程语言 时间:
2018-11-04 01:44:37
阅读次数:
157
定义 归并排序是一种递归算法,可以将列表连续分成两半。 如果列表为空或只有一个元素,则按定义(基本情况)已是排序列表。 如果列表有多个元素,我们拆分列表并在两半上递归调用合并排序。 一旦这两半部分排序完毕,就会执行称为合并的基本操作。 合并是获取两个较小的排序列表并将它们组合成一个排序的新列表的过程 ...
分类:
编程语言 时间:
2018-11-04 00:33:40
阅读次数:
222
一、递推算法的思想 有事不求人,遇到困难自己解决,即使难以解决也要硬着头皮去解决。 二、递归算法的特点 (1)递归过程一般通过函数或子过程来实现。 (2)递归算法在函数或子过程的内部,直接或间接地调用自己的算法。 (3)递归算法实际上是把问题转化为规模缩小的同类子问题,然后再递归调用函数或过程来表示 ...
分类:
编程语言 时间:
2018-10-25 15:39:01
阅读次数:
139
后续遍历关键在于,当节点的 右子树存在且被访问后 或者是 右子树为空 才能访问自身。 在遍历过程中,先将节点从的左孩子到最左节点压栈, 设置标志变量 flag 来判断是否访问过左孩子, pre指针来指向先前访问过的节点。 所有左孩子压栈后, 最后一个节点的左孩子为空,已被访问p = NULL , 令 ...
分类:
编程语言 时间:
2018-10-24 17:51:50
阅读次数:
194
递归算法: 不是很理解这段代码里面 return L[0] + mysum(L[1:]),返回的是什么 ...
分类:
编程语言 时间:
2018-10-23 14:50:15
阅读次数:
158
1、什么是二分思想? 二分思想可以理解为是一种将一个大问题分成两个子题,当每次分析完两个子问题后,舍弃其中一个不符合条件的子问题,再将符合条件的子问题一分为二,反复循环搜索判断的操作,直至找到所求的数值或者子问题不能再一分为二时为止的思想。 2、二分搜索算法 二分搜索算法是运用二分思想和分治策略的典 ...
分类:
其他好文 时间:
2018-10-22 20:40:56
阅读次数:
164
1.二分法思想:二分搜索算法是运用分治策略的典型例子。二分搜索算法的基本思想是将n个元素分成个数大致相同的两半,取a[n/2]与x作比较。如果x=a[n/2],则找到x,算法终止;如果x<a[n/2],则只在数组a的左半部继续搜索x;如果x>a[n/2],则只在数组a的右半部继续搜索x。通过二分搜索 ...
分类:
其他好文 时间:
2018-10-21 12:15:05
阅读次数:
169