数据结构与算法分析
ppalive_
这个作者很懒,什么都没留下…
展开
-
线索二叉树
#include #include typedef enum{Link,Thread} PointerTag; typedef struct ThrBiTreeNode{ //树的节点 char data; struct ThrBiTreeNode *lchild,*rchild; PointerTag ltag,rtag; //枚举类型变量,用于线索二叉树中,指示左右孩纸原创 2015-08-10 19:36:47 · 679 阅读 · 0 评论 -
Huffman编码实现
来自于/*小甲鱼数据结构与算法视频讲解*///decode(); 函数为自己编写//对字符进行哈弗曼编码,由于计算机用8bits存储一个char字符,so,一共可以有256种字符,但ASCII码表中只有128个字符。在本程序中用char code[256];存储各个字符编码的结果,其实也可以用128位,即char code[128].因为:总共有128个字符,建立哈弗曼树时,树最多有128层,这意原创 2015-08-13 17:20:03 · 539 阅读 · 0 评论 -
串模式匹配算法的几种代码实现
c语言中字符串处理的库函数还是比较全的,c++里的string类就更不用说了。有些处理函数虽然已封装为库函数,直接调用即可,但是正在学习数据结构,还是想敲些代码,以便总结+巩固。首先,总结一下常用的c语言中字符串处理标准库函数: (仅仅是我想复习一下。。。) // #include char* srtcpy(char* dst,const char* src); //从src地址开原创 2015-07-31 12:05:40 · 4378 阅读 · 0 评论 -
串模式匹配的改进算法——KMP算法
【转自】http://kb.cnblogs.com/page/176818/字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起转载 2015-07-29 16:24:03 · 596 阅读 · 0 评论 -
最短路径迪杰斯特拉算法C语言实现__Dijkstra
// 采用邻接矩阵表示图// 简单起见,邻接矩阵(图中各结点间的距离权值)在main函数中直接输入了#include #incl原创 2015-08-19 18:39:41 · 15047 阅读 · 4 评论 -
马踏棋盘C语言实现
该代码为未优化算法实现,8*8棋盘,挑选效率高的起始点(2,0),以及效率高的走法每一次走法的尝试都是回溯法,一条路走到黑,直到行不通,再重新开始////////////////回溯法+递归//////////////图的深度优先遍历///////////////////////////////#include //#include #include #define X 8原创 2015-08-17 18:01:38 · 4106 阅读 · 0 评论 -
最短路径弗洛伊德算法C语言实现__Floyd
// 采用邻接矩阵表示图// 简单起见,邻接矩阵(图中各结点间的距离权值)在main函数中直接输入了#include #include #define MAXVEX 9#defin原创 2015-08-19 22:34:12 · 9007 阅读 · 2 评论 -
最小生成树普利姆算法c语言实现__Prim
为方便,本程序中所用图结点及边在main函数中直接定义#include #include #define MAXVEX 5#define INFINITY 65535 // 权值为65535以为两个结点之间没有连接的边,即为我们通常所说的∞struct MGraph{ /原创 2015-08-17 22:27:49 · 8753 阅读 · 4 评论 -
最小生成树克鲁斯卡尔算法c语言实现__Kruskal
// 采用边集数组表示图//其中判断目前生成树是否已连通(有时无需遍历边集数组的全部元素) 的函数int IsCompleted(int *parent); 为自己加上去的// 另外,简单起见,边集数组(按边的权值从小到大排序)在main函数中直接输入了#原创 2015-08-18 22:20:09 · 11246 阅读 · 1 评论