一、需求 1、实现图的创建 2、实现图的遍历 3、实现图的最短路径求解 二、解决方案 1、图创建采用邻接表存储结构、和尾插法的创建模式 2、图的遍历采用DFS深度优先的算法 3、图的最短路径采用Dijkstra算法 三、代码 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef char charType[20];//顶点信息存放数据类型 int visit[20];//顶点是否被访问过的标志数组 /…

2018年5月6日 0条评论 2点热度 阅读全文

一、需求 1、实现图的创建 2、实现图的遍历 3、实现图的最短路径求解 二、解决方案 1、图创建采用邻接表存储结构、和尾插法的创建模式 2、图的遍历采用DFS深度优先的算法 3、图的最短路径采用Dijkstra算法 三、代码 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef char charType[20];//顶点信息存放数据类型 int visit[20];//顶点是否被访问过的标志数组 /…

2018年5月6日 0条评论 4点热度 阅读全文

感觉写不出这位大佬这么仔细,所以转载一波,方便一起观看 https://www.cnblogs.com/xuyinghui/p/4592511.html

2017年12月5日 0条评论 2点热度 阅读全文

一、二叉树定义 二叉树的特点是每个结点至多只有两棵子树(即二叉树中不存在度大于2的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒 下面是含三个结点的二叉树(方便理解) 二、二叉树性质 1、在二叉树的第i层上至多有2^(i-1)个结点(i>=1):比如第1层只有一个结点(根) 2、深度为k的二叉树至多有2^(k)-1个结点(k>=1) 3、对任何一个二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1 4、具有n个结点的完全二叉树的深度为x+1,(x不大于log2n)(2是底数…

2017年11月7日 0条评论 5点热度 阅读全文

一、二叉树定义 二叉树的特点是每个结点至多只有两棵子树(即二叉树中不存在度大于2的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒 下面是含三个结点的二叉树(方便理解) 二、二叉树性质 1、在二叉树的第i层上至多有2^(i-1)个结点(i>=1):比如第1层只有一个结点(根) 2、深度为k的二叉树至多有2^(k)-1个结点(k>=1) 3、对任何一个二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1 4、具有n个结点的完全二叉树的深度为x+1,(x不大于log2n)(2是底数…

2017年11月7日 0条评论 13点热度 阅读全文

一、串基本操作——定长顺序存储 类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列,该结构,按预定义的大小,为每个定义的串变量分配一个固定长度的存储区 #include <stdio.h> #include <malloc.h> int getLength(char *str) { int len=0; while(str[len]!='\0') { len++; } //len--; return len; } int strCompare(char *str1,cha…

2017年10月27日 0条评论 2点热度 阅读全文

一、BF算法(朴素算法) 缺点:每次失配都是从头重新开始,效率低下 #include <stdio.h> #include <string.h> int main() { char s[]="abcdefgab"; char t[]="abcdef"; int a,b; int i=0,j=0; a=strlen(s); b=strlen(t); j=0; printf(" 请输入数i,代表从主串s哪个位置开始\n"); scanf("%d",&i); while(j<b&am…

2017年2月23日 0条评论 2点热度 阅读全文