自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 抽象工厂模式

抽象工厂模式是一种创建型的模式,目的是创建一组相关或者相互依赖的对象:c++代码:class AbstractProduct{public: AbstractProduct(string name):mName(name){} virtual ~AbstractProduct()=0; virtual void show()=0;protected: string mName;

2016-02-23 22:42:06 221

原创 监听者—观察者模式

class Listener //监听者的基类{public: Listener(string name):mName(name){} virtual void handleMessage(int iMessage) const=0; //对感兴趣的事件进行处理protected: string mName;};class TestListener1:publ

2016-02-23 22:35:15 332

原创 二叉树转换成双向链表

二叉树中,每个节点都有两个指针,双向链表中每个节点也有两个指针。在转换过程中,我们可以让双向链表中的节点的前驱指向左孩子的最右断,后继指向右孩子的最左端。代码如下:struct BinaryTree{char data;BinaryTree *mLeft;BinaryTree *mRight;};BinaryTree* BuyNode(){

2016-02-21 00:07:45 453

原创 C语言实现循环队列

C语言实现的循环队列,用数组形式实现的,下面是实现的代码,初始化,插入,删除,和打印操作。#include#include"seq_queue.h"#include #include static bool is_full(seq_queue *q){ return (q->tail+1)%MAX_SIZE == q->head; }bool is_

2016-02-06 13:24:00 377

原创 根据遍历结果构造二叉树

二叉树的前序,中序,后序遍历不是本篇说的重点,这次主要说一下如何根据两种遍历结果构造一棵树。 1.根据前序和中序遍历的结果构造这棵树char *ps = "ABCDEFGH";   //前序char *is = "CBEDFAGH";    //中序由前序遍历的规则可知,ps的第一个元素即为树的根,我们以第一个为界限在中序遍历的结果里面找,即可将第二个数组划分为两部分,左边为这

2016-02-06 13:21:58 314

原创 C语言可变参函数的实现原理浅析

先看一下可变参函数的使用:int add(int n,...){int i=0;int result=0;va_list arg=NULL;va_start(arg,n);for(;i{result+=va_arg(arg,int);}va_end(arg);return result;}int main(){printf("

2016-02-06 13:19:45 251

原创 快速排序---C语言实现

快速排序是这样的一种排序算法,每次将关键字放在合适的位置上,关键字之前的都比它小,之后的都比它大,接下来用两种方式实现快速排序的算法,递归和非递归。先看下递归版本的int partation(ELEM_TYPE *arr,int left,int right){ELEM_TYPE tmp=arr[left];while(left{while(left{right--

2016-02-06 13:18:16 235

原创 linux下的I/O复用函数

Select系统调用:Select系统调用的功能是:在一段时间里监听用户感兴趣的文件描述符上的可读,可写,异常等事件。 这是linux上的select系统调用的原型: 各个参数说明:nfds指定被监听的文件描述符的总数,它通常被设置为最大的文件描述符的值加一,因为文件描述符是从0开始的。Readfds,writefds,exceptionfds,分别指向可读,可写,异常事件

2016-01-30 18:31:29 281

原创 c++内存池

//以下是一个简易的c++内存池的实现。实现次内存池的目的是我们一次性向系统申请大块的内存,然后自己管理,这样可以避免重复向系统申请小块的内存而带来的系统开销。我是用一个双端队列来管理申请到的内存的。当程序需要申请是,从队头拿出来一个。释放时,将释放的内存块挂进队列。以下是c++代码。const int MEM_SIZE = 5;class CQueue{public:

2016-01-29 11:34:10 199

原创 字典树

//字典树的插入和删除操作#define MAX_SIZE 25const int LinkSize = 27;typedef enum {ELEM=0,BRCH}NodeType;typedef struct{char ch[MAX_SIZE + 1];int  curSize;}KeyType;//关键码类型typedef struct {}Reco

2016-01-28 22:18:19 174

空空如也

空空如也

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

TA关注的人

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