
数据结构
abnerwang_smile
主力博客http://abnerwang.github.io/
展开
-
二叉树的层序遍历
我的主力博客:半亩方塘层序遍历二叉树需要用到队列的先进先出的特性,这里的二叉树采用二叉链接表示法,队列是采用顺序存储结构的循环队列,按照前序遍历建立二叉树,利用队列层序遍历二叉树的主要过程如下:将二叉树的根结点的指针入队列若队列非空,将队列中的队头元素出队列,然后将该队头元素的左孩子指针(若存在)入队列,接着将队头元素的右孩子指针(若存在)入队列重复过程2,直到队列中没原创 2015-12-04 19:28:34 · 2932 阅读 · 0 评论 -
分治策略结合递归思想求最大子序列和
对于 《数据结构与算法分析——C语言描述》 一书第 20 页所描述的算法 3,相信会有很多人表示不怎么理解,下面我由具体问题的求解过程出发,谈谈我自己的理解:首先,什么是分治法呢?所谓 分治法,就是 将一个问题的求解过程分解为两个大小相等的子问题进行求解,如果分解后的子问题本身也可以分解的话,则将这个分解的过程进行下去,直至最后得到的子问题不能再分解为止,最后将子问题的解逐步合并并可能原创 2014-06-30 19:50:44 · 7611 阅读 · 6 评论 -
由递归思想处理问题的基本原则
在我的博文关于递归的一些简单想法,我用自己的理解谈了一些关于递归的看法,下面用 《数据结构与算法分析——C语言描述》 一书中第 9 页的四条基本原则将我的思想加以规范化,并在后续的不断加强学习中不断完善本文的内容。在编写递归程序的时候,要牢记递归的四条基本原则:基准情形:必须总有某些基准情形,它无需递归就能解出 —— 构成递归终止条件不断推进:对于那些需要递归求解的情形原创 2014-06-30 19:48:26 · 1488 阅读 · 0 评论 -
关于递归的一些简单想法
递归是我们在编程过程中用到的一种思想,当一个函数自身调用自身的时候,无论是直接或者间接地调用,都属于递归,下面对于什么时候用到递归以及怎么用递归,谈一点我个人初步的想法。什么时候用到递归当我们要解决的问题有着 重复执行的基本操作 的时候,可以考虑使用递归用递归思想进行编程的时候需主要需要注意的几点内容首先是 递归上限 ,通常是一个指出递归开始位置的 有效范围内 的对象,一般原创 2014-05-24 23:08:48 · 1497 阅读 · 0 评论 -
使用迭代器进行二分搜索
我的主力博客:半亩方塘使用迭代器进行二分搜索是迭代器运算的一个经典案例之一,二分搜索是指在给定的 有序序列 中查找某个想要的元素的过程:首先给出二分搜索的查找范围,然后通过计算得到所给范围中的中间位置元素的值,如果这个中间元素的值与所要查找的元素值相等,则搜索成功,程序完成,否则,比较这个中间元素的值与所要搜索的值的大小,倘若所要搜索的值大于这个中间元素的值,则所要搜索的值应该在这原创 2014-04-18 15:31:03 · 2349 阅读 · 0 评论