摘要: 1,邻接矩阵(数组)①邻接矩阵是指用一个二维数组存储顶点间的相邻关系。 如果是无权值的图,如果两点是相邻边则矩阵对应元素值为1,否则为0. 如果是网,则用其权值表示相邻边的元素值,否则用一个无穷数表示。(因为0,甚至负数都可以表示权值)②用一个顺序表来存储顶点。#define INFINITY 4294967295; //定义一个无穷大的数,这里假定是32位的最大数,即2^32-1。#define MAX_VERTEX_NUM 20;//顶点数typedef enum GraphType{dg,udg,dn,udn};//有向图,无向图,有向网,无向网typedef structAdjMW.. 阅读全文
posted @ 2012-12-20 14:07 da 阅读(264) 评论(0) 推荐(0)
摘要: freeType 是一个是一种字体服务,而没有提供为实现文字布局或图形化处理这样高阶的功能使用的API(比如带色文字渲染之类的)。然而,它提供一个简单的、易用的并且统一的接口实现对多种字体文件的访问,从而大大简化了这些高级的任务。官方网址:http://www.freetype.org/下载地址:http://sourceforge.net/projects/freetype/files/ 阅读全文
posted @ 2012-12-20 10:06 da 阅读(1191) 评论(0) 推荐(0)
摘要: 图是什么?先用通俗易懂的语言去理解,然后引入严谨的定义。根据维基百科上描述:在数学上,一个图是表示物件(对象)与物件之间关系的方法,是图论的基本研究对象。一个图看起来是由一些小圆点(称为顶点或结点)和连接这些圆点的直线或曲线(称为边)组成的。由上述描叙可知图是由点的集合(vertex set)和边的集合(edge set)组成的。首先研究边:在数学里,两个点才能确定一条直线。比如有两个点A,B,可以从任意一点出发,得到一条线段。如果规定了方向将会得到AB或BA,这样的情况称之为有向边,否则则称为无向边。在图中,如果边的集合是有向的称为有向图,否则称为无向图。此时A和B是相邻的,同在一个图中,称 阅读全文
posted @ 2012-12-14 10:23 da 阅读(408) 评论(0) 推荐(0)
摘要: /* 单链表:优点:1,解决了线性顺序表的长度固定的问题2,删除、插入元素的时间复杂度为 O(1), 缺点:读取元素时间复杂度为O(n) */typedef int ElemType;typedef int Status;#define ERROR 0#define OK 1#define HEAD 0struct Node{ ElemType data; struct Node *Next;};typedef Node* LinkList; /************************************... 阅读全文
posted @ 2012-12-13 09:40 da 阅读(185) 评论(0) 推荐(0)
摘要: #include <Windows.h>#define MAXSIZE 100/*定义表的长度,这是顺序表的缺点呀,不过有失必有得*/#define OK 1#define ERROR 0typedef int Status;/*定义我们函数的返回状态*/typedef int ElemType;/*数据类型*/ typedef struct { ElemType data[MAXSIZE];/*表在这里*/ int length;/*表的长度*/}LinkList; /******************************************************** 阅读全文
posted @ 2012-12-13 09:39 da 阅读(189) 评论(0) 推荐(0)
摘要: 1, 二进制 数据在内存中是用二进制存储的,二进制是指由0,1两个元素组成。 其常见的编码方式有三种:原码,反码,补码2 ,位 内存中最小存储单元是位,也称为bit。常常用8个bit存储一个字符,即1Byte=8bit。3 ,位操作 是指cpu对内存中的二进制数进行操作。 包括&(与)、|(或)、^(异或)、~(非)、<<(按位左移)、>>(按位右移)六个操作符。 3.1 双目运算符 是指参与运算的有两个数。下面括号内分别表示两个数。 &:if (1,1)?1:0 |:if (1,0) or (0,1) ?1:0 ^:if (0,0) or (1,1)? 阅读全文
posted @ 2012-12-12 17:49 da 阅读(792) 评论(0) 推荐(0)
摘要: void SetNext(const char *T, int kmpNext[]){int len=strlen(T);//模式字符串长度。kmpNext[0]=0;for(int i=1; i<len; i++){int k=kmpNext[i-1];while( T[i] != T[k] && k!=0 ) //查找是否有匹配项 k=kmpNext[k-1]; if( T[i] == T[k])//如果有,则next数组位置加1kmpNext[i]=k+1;elsekmpNext[i]=0;//如果不匹配}}int kmp2(int start,char *S,ch 阅读全文
posted @ 2012-12-05 19:37 da 阅读(189) 评论(0) 推荐(0)
摘要: 内存,顾名思义是内部存储数据的地方。内存大概分为两部分,一部分是只能读的数据部分;另一部分是能读又能读写的地区。关于第一部分,一般都是存放计算机硬件信息,以及管理硬件的bios。这一部分不是我们重点讨论的地方。第二部分,是程序员经常打交道的地方。这一部分其实也要分为几块,相对来说这些分为代码和数据。代码区域存放一些逻辑;而数据部分是最关键的,数据分为变量和常量。而变量又要分为局部变量和全局变量。由于全局变量的大小是可预知的,所以其区域跟常量区以及静态变量分作一块。堆栈,是我们搞混的区域。看文字上的理解,就知道堆是没规则的乱放的,而栈是有规则的堆放。众所周知,有规则的速度快,没规则的空间大。所以 阅读全文
posted @ 2011-12-22 16:02 da 阅读(208) 评论(0) 推荐(0)