- 博客(17)
- 收藏
- 关注
转载 进程的状态转换
四种进程间的状态转换: 进程的状态转换图 1.就绪–>执行 2.执行–>就绪 3.执行–>等待 4.等待–>就绪 一、进程的三种基本状态 进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态。 就绪(Ready)状态 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。
2013-09-16 13:39:29 702
转载 二叉树的前序遍历、中序遍历和后序遍历及其算法
二叉树的基本的遍历规则有三种:前序遍历,中序遍历和后序遍历。对于每一种遍历,树中每个结点都要经过3次。前序遍历在第一次遇到结点时立即访问,中序遍历第二次遇到结点时访问,后序遍历则到第三次遇到结点时才访问。 以一棵二叉树说明其三种遍历顺序: 二叉树的前序遍历 前序遍历:- + a * b – c d / e f 中序遍历:a + b * c – d – e / f
2013-09-16 13:13:22 1049
转载 C++静态类成员
静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点: 1.静态数据成员的定义。 静态数据成员实际上是类域中的全局变量。所以,静
2013-09-16 13:03:18 746
转载 友元函数和友元类
采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和
2013-09-16 12:36:35 609
转载 虚函数、纯虚函数详解
1.首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。 定义一个函数为纯虚函数,才代表函数没有被实现。定义他是为了实现一个接口,起到一个规范的作用,规范继承这个。类的程序员必须实现这个函数。 2.关于实例化一个类: 有纯虚函数的类是不可能生成类对象的,如果没有纯虚函数则可以。
2013-09-16 11:29:13 598
原创 在python中编写socket服务端模块(二):使用poll或epoll
在linux上编写socket服务端程序一般可以用select、poll、epoll三种方式,本文主要介绍使用poll和epoll编写socket服务端模块。 使用poll方式的服务器端程序代码: import socket import select import Queue server_address=('10.0.2.15',21345) server=socket.sock
2013-09-13 14:58:57 3774
原创 在python中编写socket服务端模块(一):使用select
本文介绍使用select编写socket服务端模块。 服务器端程序代码: import socket import select import Queue server=('10.0.2.15',21345) #SOCK_STREAM(流套接字)、SOCK_DGRAM(数据报文套接字)、AF_INET(IPv4) sock=socket.socket(socket.AF_INET,so
2013-09-13 14:45:12 2070
转载 常见算法题
一、维护O(1)时间查找最大元素的栈 问题描述:一个栈stack,具有push和pop操作,其时间复杂度皆为O(1)。设计算法max操作, 求栈中的最大值,该操作的时间复杂度也要求为O(1)。 可以修改栈的存储方式,push,pop的操作,但是要保证O(1)的时间复杂度,空间时间复杂 度无要求。 可以创建一个类,类里有两个栈,一个栈S维持正常的push、po
2013-09-12 21:26:50 1483 2
转载 字符串匹配经典算法讲解
本系列文章主要介绍几种常用的字符串比较算法,包括但不限于蛮力匹配算法,KMP算法,BM算法,Horspool算法,Sunday算法,fastsearch算法,KR算法等等。 本文主要介绍KMP算法和BM算法,它们分别是前缀匹配和后缀匹配的经典算法。所谓前缀匹配是指:模式串和母串的比较从左到右,模式串的移动也是从左到右;所谓后缀匹配是指:模式串和母串的的比较从右到左,模式串的移动从左到右。看得出来
2013-09-12 19:38:08 1130
转载 字符串匹配常用算法
字符串匹配(string match)是在实际工程中经常会碰到的问题,通常其输入是原字符串(String)和子串(又称模式,Pattern)组成,输出为子串在原字符串中的首次出现的位置。通常精确的字符串搜索算法包括暴力搜索(Brute force),KMP, BM(Boyer Moore), sunday, robin-karp 以及 bitap。下面分析这几种方法并给出其实现。假设原字符串长度M
2013-09-12 19:35:13 1030
转载 C++变量的存储类别(动态存储、静态存储、自动变量、寄存器变量)
一、动态存储方式与静态存储方式 上一节已介绍了变量的一种属性——作用域,作用域是从空间的角度来分析的,分为全局变量和局部变量。 变量还有另一种属性——存储期(storage duration,也称生命期)。存储期是指变量在内存中的存在期间。这是从变量值存在的时间角度来分析的。存储期可以分为静态存储期(static storage duration)和动态存储期(dynamic storage
2013-09-12 19:08:01 871
转载 I/O复用中select、poll、epoll的比较
转自:http://www.cnblogs.com/xuxm2007/archive/2011/08/15/2139809.html linux提供了select、poll、epoll接口来实现IO复用,三者的原型如下所示,本文从参数、实现、性能等方面对三者进行对比。 int select(int nfds, fd_set *readfds, fd_set *wr
2013-09-10 17:26:52 1229
原创 在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类
在Python使用正则表达式需要使用re(regular exprssion)模块,使用正则表达式的难点就在于如何写好p=re.compile(r' 正则表达式')的内容。 下面是在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类的代码, import re p=re.compile(r'^[\w\d]+[\d\w\_\.]+@([\d\w]+)\.([\d\w]+)(?:
2013-09-04 14:44:21 3311 1
原创 在python中实现生产者和消费者的例子(五):使用threading模块和全局变量
本文介绍如何用threading模块实现生产者和消费者的例子 import threading import time import random c=0 lock=threading.RLock() #class 类名 (所要继承的类) class producer(threading.Thread): def __init__(self,no):
2013-09-04 13:36:20 989
原创 在python中实现生产者和消费者的例子(四):使用thread模块和全局变量
本文介绍如何用thread模块实现生产者和消费者的例子 import thread import time import random c=0 lock=thread.allocate_lock() def producer(no): global c while True: if c time.sleep(ran
2013-09-04 13:32:04 1025
原创 在python中实现生产者和消费者的例子(三):使用fork和pipe
本文介绍os.fork()和os.pipe()的使用 import os import time total=0 r,w=os.pipe() pid0=os.getpid() print '主进程',pid0 pid1=os.fork() #为了证明os.fork()有两个返回值 #print '测试',pid1 #os.getpid()值不是固定的
2013-09-04 13:27:15 1306
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人