自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林贻民的博客

我的学习记录

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

原创 不相交集合

定义不相交集合数据结构支持以下操作: 1.MakeSet(x):创建一个单元素集合{x} 2.Find(x):返回包含元素x的集合的ID号 3.Union(x, y):融合包含x元素的集合和包含y元素的集合一般实现为了简单起见,假定我们的n个对象全都是整数1,2,3,4,…,n 1.使用最小元素当做集合的ID号 2.使用smallest[1…n]数组:smallest[i

2016-06-30 20:39:02 964

原创 优先队列(priority queue)

定义优先队列是一种支持以下主要操作的抽象数据结构: Insert(p):添加一个带有优先权p的新元素 ExtractMax():取出具有最大优先权的元素其他操作: Remove(it):删除it迭代器指向的一个元素 GetMax():返回具有最大优先权的元素(不改变元素集合) ChangePriority(it,p):把it迭代器指向的元素权限改为p使用优先队列的算法Dijsktr

2016-06-29 18:05:00 991

原创 父母结点数组表示的树的高度

父母结点表示树数组索引号对应的值是该索引号的父母结点 例如:parent = [-1 0 0 0 1 1 3 3 2]数组表示的树为:两种方法求该树的高度方法一此方法为简单方法,时间复杂度为:O(n^2),主要思路为:从索引号0开始,求对应索引号在树中的高度,取较大值,然后求索引号1的高度,取较大值,依次循环遍历所有的结点,即可得到树的高度。python实现# n为树的结点总数def tree_

2016-06-29 10:45:06 2449

原创 单链表

结点的组成键值指向下一结点的指针单链表使用的API#时间复杂度中有关对尾部操作的函数的时间复杂度粗体为有尾部的情况 API 说明 时间复杂度 PushFront(key) 在链表首部插入元素 O(1) key TopFront()key 返回链表首部元素 O(1) PopFront() 删除链表首部元素 O(1) PushBack(key)

2016-06-28 10:18:24 681

原创 数组(Array)

数组的定义:由连续整数标号的相同元素组成的连续存储空间。数组的特点:(随机存储) 读时间复杂度为常数 写时间复杂度为常数读写的时间复杂读为常数的原因:编译器可以直接通过运算获得索引对应元素的地址。 一维数组:a[i]的地址为: &a[1] = array_addr + elem_size * (i - first_index)二维数组:a[i][j] 的地址: &a[i][j

2016-06-27 22:51:12 749

原创 urllib2抓取网页出现中文编码问题

想要抓取http://www.biquge.la/book/3564/的内容,并解析出该小说的更新时间来提醒自己小说更新了,这样就不用时刻自己动手去刷网页,特别是不用在经历那种小说不更新的失落感了.可是在抓取该网页的过程中,却发现中文出现了乱码,虽然说不影响解析,但是不把它调整过来总觉着心里有根刺在卡着,于是便动手解决了这个问题,在这个过程中,还发现了其他的问题,乱码也有可能是gzip过,于是便想一

2016-06-14 12:03:56 6944

原创 爱尔兰B计算器的MFC实现

1.设置操作界面2.初始化控件 在函数BOOL CBDlg::OnInitDialog()下初始化//初始化ComboBox控件显示第一个itemCComboBox *pBox = (CComboBox *)GetDlgItem( IDC_mode ) ; pBox->SetCurSel( 0 ) ; //B BUTTON控件初始化为灰色 m_B_ok.EnableWindow(

2016-06-13 08:51:01 1715 1

转载 ubuntu 下NetworkX,matplotlib的安装和使用(转)

转自:http://blog.sina.com.cn/s/blog_607799590102uygu.html可直接查看官网的安装方法: http://networkx.github.io/documentation/networkx-1.9/install.html 1.安装setuptoolswget https://bootstrap.pypa.io/ez_setup.py -O - |

2016-06-11 10:13:26 2557

转载 Ubuntu 安装Qt开发环境(转)

转自:http://www.linuxidc.com/Linux/2010-08/27681.htm一、Ubuntu下安装Qt$ sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer注:qt4-dev-tools 包含了Qt Assistant及Qt Linguist等工具,因此不需要单独安装这两

2016-06-08 16:51:45 550

转载 python生成器(转)

转自:[http://python.jobbole.com/82178/]生成器(generator)1.1. 生成器简介首先请确信,生成器就是一种迭代器。生成器拥有next方法并且行为与迭代器完全相同,这意味着生成器也可以用于Python的for循环中。另外,对于生成器的特殊语法支持使得编写一个生成器比自定义一个常规的迭代器要简单不少,所以生成器也是最常用到的特性之一。从Python 2.5开

2016-06-06 15:11:41 533

转载 python 迭代器(转)

转自:[http://www.jb51.net/article/52234.htm] 本文以实例详解了python的迭代器与生成器,具体如下所示: 1. 迭代器概述:迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退。1.1 使用迭代器的优点对于原生支持随机访问的数据结构(如tup

2016-06-06 11:27:23 722

转载 12步教你理解python装饰器(转)

原地址:[http://www.jb51.net/article/79985.htm]通过下面的步骤让你由浅入深明白装饰器是什么。假定你拥有最基本的Python知识,本文阐述的东西可能对那些在工作中经常接触Python的人有很大的帮助。 1、函数(Functions) 在Python里,函数是用def关键字后跟一个函数名称和一个可选的参数表列来创建的,可以用关键字return指定返回值。下面让我

2016-06-06 00:14:27 586

转载 Python 的 Magic Methods 指南(转)

介绍 什么是魔术方法呢?它们是面向对象Python语言中的一切。它们是你可以自定义并添加“魔法”到类中的特殊方法。它们被双下划线环绕(比如init或lt)。它们的文档也不像它所需要的那么齐备。Python的所有魔术方法都在Python文档的同一区域,但它们的使用分散,组织松散。而且文档的这部分区域中几乎没有一个示例(这很有可能是设计好的,因为在语法参考里它们都很详尽,但伴随的是枯燥的语法描述等等)

2016-06-05 23:29:28 669

原创 python map(),reduce()函数的使用

map()函数:接收两个参数:一个是函数,一个是序列,map函数将传入的函数一次作用到序列的每个元素,若传入的函数有返回则把结果作为新的序列返回.反之,返回空序列(字符串也是序列)reduce()函数:接受两个参数:一个是函数,一个是序列,reduce函数将传入的函数(必须两个参数)作用到序列上,输出结果继续和序列的下一个元素做运算,最终reduce()函数的返回结果,由传入的函数返回结果决定.下面

2016-06-05 17:48:10 1448

翻译 python property函数

property函数不是一个真正的函数,它实际上是一个拥有很多特殊方法的类.在python的文档中property的定义为: class property([fget[, fset[, fdel[, doc]]]]),它返回一个新式类的属性,fget是返回属性值的函数,fset是设置属性值的函数.fdel是一个删除属性值函数.doc为属性产生文档字符串. property的一个典型应用时用来定义

2016-06-03 21:46:25 677

原创 常用内建异常类

Exception 所有异常的基类 AttributeError 特性引用或者赋值失败时引发 IOError 试图打开不存在文件时引发 IndexError 在使用序列中不存在的索引时引发 KeyError 在使用映射中不存在的键时引发 NameError 找不到名字(变量)时引发 Sy

2016-06-03 15:55:43 1080

原创 mininet 画网络拓扑图

根据 mininet 平台下 net 命令输出的数据得出网络拓扑 1. 把 net 命令输出的数据写入文件(文件名自定义)的方法 1) 在 mininet/mininet/ 文件夹下写 globalv.py 文件(定义一个全局变量)globalv.py 内容file2 = open(‘1. 中定义的文件名 ‘,’w’) file2 = file.close() 2) 修改 mininet/m

2016-06-03 11:35:39 5996 2

原创 PYTHON 自定义异常类的使用

1.定义一个异常类,该类从Exception类中继承 2.在try中使用raise语句引发异常 3.except捕获异常,并执行相关命令 看以下的例子: 1 #_*_coding=UTF-8_*_ 2 #使用自定义异常类实现指定输入字符串长度 3 #自定义异常类 4 class SomeCustomError(Exception): 5 def __init__(se

2016-06-03 11:17:24 4633

原创 python hasattr() getattr() setattr()函数的使用

hasattr(object,name):用于判断一个对象里中是否存在name这一特性.由测试结果可知,对象a里包含特性name和方法greet(),所以输出True,而不包含特性age,所以hasattr(a,”age”)输出为False.getattr(object, name[, default]):object为对象名,name为对象属性(必须是字符串),default为name属性不存在时

2016-06-02 17:36:45 4505

空空如也

空空如也

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

TA关注的人

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