随笔分类 - 数据结构
摘要:最小生成树的对象是无向连通网,这个前提是必要的,无向,邻接矩阵是对称的,连通,点与点之间两两可达,网,所有边都有权重,对应于城市修路问题,就是路的长度,最小生成树,对应同时满足城市之间连通和修路花费最小,是一个实际应用性很强的算法。 最小生成树的实现主要有两种算法,Prim算法和Kruskal算法,
阅读全文
摘要:图有两种遍历方式,深度优先遍历和广度优先遍历 以下面这幅图为例 深度优先遍历生成序列为 V1 -> V2 -> V4 -> V8 -> V5 -> V3 -> V6 -> V7 广度优先遍历生成序列为 V1 -> V2 -> v3 -> V4 -> V5 -> V6 -> V7 -> V8 深度优先
阅读全文
摘要:当图比较稀疏时,采用邻接矩阵存储会比较浪费空间,因为大部分空间都会填充为0,这时候采用邻接表存储是一个可行方案。 如上图所示,每个顶点都是一个表头结点,data存放数据,fisrtarc是指向表中结点的指针,表中结点的adjvex存放该顶点的下标,nextarc是指向下一个表中结点的指针,info在
阅读全文
摘要:图是表达多对多关系的一种数据结构,组成要素为顶点和连接顶点的边。 根据边有无方向可分为有向图和无向图 当边有权重时,升级为有向网和无向网 图在存储时,可采用邻接矩阵,比如下面的无向图(A)和(B) 用邻接矩阵可分别表示为下面这样 每一行代表一个顶点,每一列也对应一个顶点,对于无向图,边没有方向,顶点
阅读全文
摘要:既有详细的文字解释,也有详细的代码实现,比教材读起来舒服多了 地址:http://data.biancheng.net/
阅读全文
摘要:采用链式存储 若需访问父节点,可如下表示 以上面左图为例,用上述结构体存储,代码如下
阅读全文
摘要:1)数组名是指针常量 如对指针变量可以进行++运算,但是对数组名却不允许,另外,对数组名的赋值运算也是错误的 2)注意指针变量的当前值 指针变量的值在程序运行过程中可能经常改变,要对此注意 3)数组越界 C语言系统是不检查数组越界的,需要程序员自行检查 4)深入理解++和—与指针变量的结合
阅读全文
摘要:1)在定义说明语句中,指针变量名之前的星号“*“是指针变量的修饰符,也就是说它所修饰的变量是指针变量。 2)指针变量是用它们所指向的对象类型来区分的。如定义 int *ip,类型int并不是指针的类型,而是指针所指向变量的类型。 3)尽管各种指针变量所保存的是内存中的地址,但不同类型的指针是不能互换
阅读全文
摘要:使用python是真的方便,不仅有非常好用的高级方法,也没有c或c++,java的稍显繁琐的格式
阅读全文

浙公网安备 33010602011771号