- 博客(6)
- 收藏
- 关注
原创 最小生成树--kruskal算法
kruskal算法形成最小生成树prim是以顶点为中心,而kruskal算法是以边为中心。每次找到不会形成环路的最小的边。kruskal算法中有个重要的数组parent[MAXVEX],用来判断是否会形成回路。最重要的是弄清楚parent[i]数组表示的意义。该数组的内容i表示顶点,该数组的值表示与该顶点i直接或者间接相连。如parent[0]=1,表示v0v1顶点(直接或者通过中间结
2012-12-16 22:56:27 606
原创 最小生成树--prim算法
prim算法生成最小生成树先描述下prime算法:N={V,{E}} 其中,顶点集V和边集{E}从U={u0} u0是V的子集,TE={}开始。在所有在U中的结点和不足U中的结点中找到一条代价最小的边(u0,v0),合入TE,将v0。直到U=V。具体实现如下:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2012-12-16 15:16:06 434
原创 图的遍历--思想
深度优先遍历DFS和广度优先遍历BFS1.深度优先遍历的过程是递归的过程。类似于一颗树的前序遍历。 先将所有的结点初始化标记为FALSE,表示未被访问过。 再对每个结点i,进行深度递归算法。(如果存在非连通图时,也可保证将所有结点进行遍历) 标记i结点已经被访问过,并输出。 将顶点i到所有结点进行判断,判断i到这些结点之间是否有边,并
2012-12-15 22:53:41 838
原创 图的存储结构
图有5种不同的存储结构,下面主要讲述邻接矩阵表示和邻接表表示1.邻接矩阵:用两个数组来表述,一个一维数组存储所有的顶点。一个二维数组,存储顶点间的边关系。如:顶点数组vexs[5]={v0,v1,v2,v3,v4} 边数组arc[5][5]={0 ,# ,#, #,6, //两个顶点间连成的边的权值
2012-12-15 22:30:15 385
原创 结构体在内存中的存储+位域分配
结构体在内存中的存储问题:结构体是一种比较复杂的结构,一个结构体中可以定义多种不同的类型,不单单是基本数据类型如int,float,char 等,还可以在结构体中定义结构体,指针等复杂的数据结构。下面就来分析下,结构体在内存中的分配空间的问题。首先,在内存中遵循2个大的原则:1.不同的数据类型的数据,总是一个个的存储到内存中的,每一个元素放置到内存中时,它都会认为内存是以它自己的大小来
2012-12-10 23:04:04 2234
原创 KMP模式匹配算法的两点理解
KMP模式匹配算法中,核心就在于next[j]数组的赋值。这里字符串数组均从下标1开始,下标0,用于存储字符串长度。个人理解,next[j]的值表示,从1到j-1的位置上,有多少个匹配的字符串(包括一个字符)+1。其中定义,当j=1,next[j]=0;当j不等1,查看从1到j-1位置的字符,进行比较。较简便的方法为,如a1a2a3a4a5,如只有一位,则比较a1与a5是否相等,如果二位相等,
2012-12-09 23:08:19 389
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人