摘要: import osimport reimport xml.dom.minidomdom = xml.dom.minidom.parse('xml.xml')root = dom.documentElementhellolist = root.getElementsByTagName('Hello')... 阅读全文
posted @ 2015-09-14 22:49 露天坝 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 1.怎么调试程序在linux下,我们通常用gcc来编译链接程序,用gdb来调试程序。在用gcc生成程序的时候,用-g选项来使程序可以调试:test@test-ThinkPad-Edge-E420s:~/gdb$ gcc -g -Wall gdbtest.c -o gdbtest然后在用如下命令调试程... 阅读全文
posted @ 2014-12-07 23:00 露天坝 阅读(637) 评论(0) 推荐(0) 编辑
摘要: 谁动了我的奶酪读后感中国古文言:变则通,通则达。虽然这本书讲述的只是一个很简短的寓言故事,但它却生动的阐述了“变是唯一的不变”这一生活的真谛,同时也让我对生活有了更深的了解和感悟。书中的四个小主人公——老鼠嗅嗅和匆匆,小矮人哼哼和唧唧,他们生活在一个迷宫里,奶酪是他们要追寻的东西。虽然他们心目中的奶... 阅读全文
posted @ 2014-11-26 23:18 露天坝 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 二叉树遍历的三种递归遍历的方法都比较直观,这里说一下他们的三种非递归遍历的方法。一.先序遍历的非递归算法 1.栈stack初始化 2.循环直到栈stack为空且p为空 (1)如果p非空则 a.访问p所指的当前根节点; b.将p值保存到栈stack中; c.将p指向其左子树的根节点,继续遍历其左子树; (2)如果p为空则 a.从栈stack中退出元素赋给p,回溯至父亲节点 b.将p指向其右子树的根节点,继续遍历右子树二.中序遍历的非递归算法 1.栈stack初始化 2.循环直到栈stack为空且p为空 (1)如果p非空则 a.将p值保存到栈stack中 b.将p指向其左子树的根节点,继续遍历其. 阅读全文
posted @ 2013-10-10 20:58 露天坝 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 1.在编程珠玑中如果一个待排序的数组有这样三个属性:输入数据限制在相对较小的范围内;数据没有重复;而且对于每条记录而言,除了单一整数外,没有任何其他关联数据。就可以用位图来排序。 在32的系统下用unsigned int a[]的数组来表示位图,那么a[0]就可以表示0-31这32个整数了,如果在待排序的数组中出现了这几个数,就把相应的位置1,。 void bit_set(unsigned int... 阅读全文
posted @ 2013-10-08 23:34 露天坝 阅读(228) 评论(0) 推荐(0) 编辑
摘要: topK问题就是在很多个无序的数之间选出前最小(大)的K个数,对于这种问题可以建立K大小的堆,如果是求K大个数的话,就建立最小堆,反之求最小个数的话就建最大堆。然后再遍历这个无序数组,如果遇到比堆顶元素大,就移除堆顶元素,把大的那个元素加入堆,反之亦然。 代码如下:#include#include#include#include#includeusing namespace std;template inline void print(const vector& cala){ typename vector::const_iterator first = cala.begin(); f 阅读全文
posted @ 2013-08-26 21:19 露天坝 阅读(1054) 评论(0) 推荐(0) 编辑
摘要: 堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 1.堆中某个节点的值总是不大于或不小于其父节点的值; 2.堆总是一棵完全树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。堆的定义如下:n个元素的序列{k1,k2,ki,…,kn}当且仅当满足下关系时,称之为堆。" ki=k2i,ki>=k2i+1.(i=1,2,…,[n/2])"若将和此次序列对应的一维数组(即以一维数组作此序列的存储结构)看成是一个完全二叉树,则堆的含义表明,完全二叉树中所 阅读全文
posted @ 2013-08-19 19:21 露天坝 阅读(591) 评论(0) 推荐(0) 编辑
摘要: c语言中的宏定义,有着各种好处,当然也有它不好的一面。它实现的三个主要功能是: 1)字符串替换 2)头文件包含 3)通用代码模块的扩展在代码调试时候,调试宏定义是比较麻烦的一件事,下面就介绍一种比较简单的方法。#include#define max(a, b) ((a) > (b) ? (a) : (b))#define min(a, b) ((a) < (b) ? (a) : (b))int main(void){ int a = 66; int b = 88; int ret; ret = max(a, b); printf("ret is %d\n", . 阅读全文
posted @ 2013-07-23 13:06 露天坝 阅读(2151) 评论(0) 推荐(0) 编辑
摘要: 所谓仿函数,是定义了operator()的对象,下面这个例子:FunctionObject fo; fo();其中表达式fo()是调用仿函数fo的operator()。而非调用函数fo().你可以将仿函数看做一般函数,只不过用的是一种更复杂的撰写手段:并非将所有语句放在函数体中:void fo() { statements;}而是在仿函数类别的operator()体内撰写程序代码。class FunctionObject { public: void operator() { ... 阅读全文
posted @ 2013-05-18 22:35 露天坝 阅读(3498) 评论(0) 推荐(0) 编辑
摘要: 在c++中,类与类之间有某些语义关系,这种关系是演化的结果,某些类的成员函数勇用于改善其特性,或者特化已有基类的某些特性,而对其余的特性加以继承。继承可以使基类的某些特性充分的得到可重用。但在某些时候处理不好的话,会带来一些编译错误。如下面的代码:#include<iostream>using namespace std;class Base { public: virtual void fucA(void) = 0; virtual void fucA(int ); void fucB(); void fucC(); ... 阅读全文
posted @ 2013-05-17 20:24 露天坝 阅读(606) 评论(0) 推荐(0) 编辑