自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kelvinmao的博客

Don't be evil

  • 博客(13)
  • 收藏
  • 关注

原创 二叉排序树(BST)的思路及C语言实现

请注意,为了能够更好的理解二叉排序树,我建议各位在看代码时能够设置好断点一步一步跟踪函数的运行过程以及各个变量的变化情况一.动态查找所面临的问题在进行动态查找操作时,如果我们是在一个无序的线性表中进行查找,在插入时可以将其插入表尾,表长加1即可;删除时,可以将待删除元素与表尾元素做个交换,表长减1即可。反正是无序的,当然是怎么高效怎么操作。但如果是有序的呢?回想学习线性表顺序存储时介绍的顺序表的缺点

2016-05-31 11:26:21 10314 2

原创 三种静态查找的思路及具体实现

一.查找及其相关概念查找,就是根据给定的某个值,在查找表中确定一个关键字等于数据值的数据元素的过程查找表按操作方式可分为两种:静态查找表:只做查找操作的查找表动态查找表:在查找过程中插入新的数据元素或删除原有的数据元素二.静态查找的三种具体方式1.顺序查找算法顺序查找,也称线性查找,是从第一个元素开始,将后面的每个元素与给定元素进行比对,若相同,则返回该元素;若没有与之相同的元素,返回空#i

2016-05-29 10:46:16 4784

原创 图的邻接表存储及其实现

图的邻接矩阵存储虽然直观,但是我们容易发现其浪费空间的问题十分严重。在线性表中,我们引入链式存储结构来弥补空间浪费的问题,同样,在图结构中,我们也可以用类似的方法来解决。由此,我们想到了将数组与链表结合起来的方法,用数组存储链表头指针,链表中存储与某一顶点的全部邻接点在数组中的索引,这样就解决了空间浪费的问题。下面贴出示例代码:#include<stdio.h>#include<stdlib.h>

2016-05-28 10:39:05 1801

原创 图的邻接矩阵存储及其具体实现

一.图的相关概念1.图的定义2.图的相关概念 要查看更详尽的概念,请参阅《大话数据结构》二.图的邻接矩阵存储结构由于图在结构上的复杂性,我们无法简单地用一个顺序存储结构来进行图的存储。由于无法用一个一维数组进行存储,那么考虑二维数组来进行存储。*邻接矩阵用一个一维数组来存储各个顶点的信息,用一个二维数组来存储各个顶点之间的连接关系*我们来看一个实例: 我们很容易理解顶点数组的意义,那么如何理

2016-05-27 19:54:27 14140 1

原创 python网络爬虫学习(四)正则表达式的使用之re的其他方法

在上一篇文章中,我们学习了re的match方法,那么掌握了match方法,其他的方法学起来就相对轻松许多,下面对这些方法进行介绍re.searchsearch方法与match方法最大的不同在于,match方法要求必须是从字符串的起始开始匹配,而search则会扫描整个字符串进行匹配。下面给出示例代码:# -*-coding=utf-8 -*-import repattern=re.compile

2016-05-26 22:55:54 1960

原创 python网络爬虫学习(三)正则表达式的使用之re.match方法

一.为什么要学习正则表达式很好,我们现在已经能够写出获得网站源代码的程序了,我们有了第一个问题:如何从杂乱的代码中找到我们所需的信息呢?此时,正则表达式的学习就显得很有必要了。有人打趣说,当你想到用正则表达式解决一个问题时,你就拥有了两个问题。从这句话中可以看出正则表达式学习的困难程度,但是为了写出好的爬虫,我们必须对其进行学习。二.正则表达式的语法规则’>1.正则表达式的一些注解(一)贪婪与非贪婪

2016-05-23 23:37:42 18942

原创 python网络爬虫学习(二)一个爬取百度贴吧的爬虫程序

今天进一步学习了python网络爬虫的知识,学会了写一个简单的爬虫程序,用于爬取百度贴吧的网页并保存为HTML文件。下面对我在实现这个功能时的代码以及所遇到的问题的记录总结和反思。首先分析实现这个功能的具体思路: 通过对贴吧URL的观察,可以看出贴吧中的帖子的URL有这样一个特征,以“http://tieba.baidu.com/p/4463392102?pn=3”这个URL为例,它由“http:

2016-05-21 17:00:25 1565

原创 python网络爬虫学习(一)通过GET和POST方式获取页面内容

python网络爬虫学习 (一)通过GET和POST方式获取页面内容网络爬虫,即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。HTTP协议中定义了四个与服务器进行交互的方法,分别是GET, POST,PUT,DELETE ,实际对应对服务器内容的“增”删“改”查“四个操作本篇文章主要记录我学习GET和POST请求方式的过程首先,如何区

2016-05-20 21:06:13 22095

原创 面试中关于二叉树的常见习题(持续更新)

这两天看了几篇关于面试中关于二叉树的常见问题,感到思路得到了很大的拓展,对递归的理解也更加深入,下面将问题及代码总结如下:Q1:求二叉树第k层的结点个数 A:递归思路:空树返回0;只有根节点返回1;其余情况对左右子树进行递归,返回左右子树(k-10层)结点数之和/*求二叉树第k层的结点个数*//*空树返回0,只有根节点返回1,其余情况对左右子树进行递归,返回左右子树(k-10层)结点数之和*/

2016-05-18 09:53:40 869

原创 二叉树几种遍历算法的非递归实现

二叉树遍历的非递归实现相对于递归遍历二叉树,非递归遍历显得复杂了许多,但换来的好处是算法的时间效率有了提高。下面对于我学习非递归遍历二叉树算法的过程进行总结为了便于理解,这里以下图的二叉树为例,分析二叉树的三种遍历方式的实现过程。 一.非递归实现二叉树的前序遍历不借助递归,要实现二叉树的前序遍历,我们需要用到前面学过的栈这种数据结构。根据前序遍历的定义,先访问根节点,再访问左子树,最后访问右子树

2016-05-15 11:43:32 18023

原创 二叉树复习以及部分常见习题

今天复习了二叉树的链式存储结构,又发现了之前忽略的一些细节问题,现在总结整理如下问题一: 在字符串赋值函数中,未将全局变量初始化造成错误,说明对全局变量理解不够深入,错误代码及改正如下:Status StringAssign(String S,char * chars){ int index=1;/*2016-05-11 惊奇的发现这句很重要,找了半天才发现这个错误*/ if(s

2016-05-11 11:15:16 883

原创 霍夫曼树及霍夫曼编码的C语言实现

从周五开始学习霍夫曼树,一直到今天终于完成,期间遇到了各种各样的棘手的问题,通过一遍遍在纸上分析每一步的具体状态得以解决。现在对学习霍夫曼树的过程加以记录首先介绍霍夫曼树霍夫曼树(Huffman Tree),又称最优二叉树,是一类带权路径长度最短的树。假设有n个权值{w1,w2,…,wn},如果构造一棵有n个叶子节点的二叉树,而这n个叶子节点的权值是{w1,w2,…,wn},则所构造出的带权路径长度

2016-05-08 21:15:32 38477

原创 二叉树链式存储的C实现

在实现二叉树的链式存储的过程中,我遇到了一些问题,感到对递归的理解还不够深入。另外,代码中有一处必须使用全局变量做数组索引,还在研究其中的原因,代码已完成,现在贴在博客中供参考#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>#define MAXSIZE 100#define OK 1#define

2016-05-01 20:07:47 1670

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除