
数据结构
scnulpc
这个作者很懒,什么都没留下…
展开
-
Stack复习-迷宫输出一条路径,用栈实现
迷宫的试探与回溯,对应于压栈与出栈过程。 试探与回溯,深度遍历的过程,不保证输出的一条路径就是最短路径,广度遍历可以。 // // main.cpp // stack // // Created by scnulpc on 2018/10/11. // Copyright © 2018年 scnulpc. All rights reserved. // #include <i...原创 2018-10-11 19:11:52 · 701 阅读 · 0 评论 -
学习循环队列-数组实现
本文章的图和代码来绝大部分自清华大学数据结构第二版,这是一篇学习笔记。 判断队列是否为空:return (front==rear)?true:false; 判断队列是否满: return ((rear+1)%maxSize==front)?true:false; (maxSize为数组长度) 队尾插入一个元素:rear=(rear+1)%maxSize; 队列头弹出一个元素:fr...原创 2018-10-11 20:29:17 · 324 阅读 · 0 评论 -
队列-单链表
一篇学习笔记。 单链表实现队列: 插入:新元素插入队列尾部 弹出:从队列头部弹出(如果头部插入,尾部弹出,有什么区别?弹出时,从头遍历到尾部再弹出,效率低。增加一个指针指向尾部前一个节点可以提高效率,但增删的代码会复杂点,毕竟操作三个指针。另外,循环指针也可解决这个问题。) 判断空否:return (front==rear&&front==NULL)?true:false;...原创 2018-10-12 20:26:42 · 409 阅读 · 0 评论 -
二叉树的那些事
一篇关于二叉树的笔记。 广义表生成二叉树。 二叉树前、中、后序遍历递归实现。 二叉树前、中、后序遍历非递归实现。 二叉树层次遍历 二叉排序树(二叉搜索树)生成 中序线索二叉树声生成、遍历。 // // main.cpp // 二叉树前中后缀遍历之递归和非递归、层次遍历、中序线索二叉树建立、遍历 // // Created by scnulpc on 2018/10/16....原创 2018-10-17 14:52:43 · 134 阅读 · 0 评论 -
图-邻接矩阵
这是一篇关于无向带权图的模板代码整理,用邻接矩阵表示图,实现图的深度优先遍历和广度优先遍历。 也可以改为有向带权图,需要在插入、删除函数作出相应的改变。 邻接矩阵表示图优缺点总结:稠密图用邻接矩阵。 邻接矩阵把所有结点的信息都保留下来,信息保留全面,查询也方便;但,当图中结点的之间联系较少时,这时的邻接矩阵为稀疏矩阵,存储了大量的0或无穷值。信息价值密度低。只有稠密图对应的邻接矩阵才不是稀疏...原创 2018-10-23 08:53:09 · 1094 阅读 · 1 评论 -
Kruskal-最小生成树
Kruskal算法的基本过程:任给一个有n个顶点的连通网络N={V,E},首先构造一个由这n个顶点组成、不含任何边的图T={V,},其中每个顶点自成一个连通分量。不断从E中取出权值最小的一条边(若有多条,任取其一),若该边的两个端点来自不同的连通分量,则将此边加入到T中。如此重复,直到所有顶点在同一个连通分量上为止。 实现分析: 由于需要不断判断两个端点是否来自同一个连通分量,否的话,两个连通...原创 2018-10-25 19:56:17 · 221 阅读 · 0 评论 -
二叉森林
复习笔记一篇。 利用广义表生成二叉森林 树与森林二叉遍历(树的先根、后根遍历;森林的先根、后根遍历) 树的广度遍历 树遍历的应用:求结点个数,求树的深度。 // // main.cpp // 二叉森林 // // Created by scnulpc on 2018/10/21. // Copyright © 2018年 scnulpc. All rights reserved....原创 2018-10-21 15:31:24 · 239 阅读 · 0 评论 -
图-邻接表
一篇整理的笔记,较为全面。用邻接表表示图,实现图的深度遍历、广度优先遍历。 图-邻接表的优缺点: 邻接表适用于简单图(稀疏图)。 邻接表保存的都是必要的关系信息。 链表的结构,导致不适宜频繁查询遍历。 // // main.cpp // 图-邻接表 // // Created by scnulpc on 2018/10/23. // Copyright © 2018年 sc...原创 2018-10-23 21:26:02 · 389 阅读 · 0 评论 -
并查集
一篇并查集笔记整理。 并查集适用场合:在一些应用问题中,需要将n个不同的元素划分为一组不相交的集合。开始时,每个元素自成一个单元集合,然后按一定的规律将归于同一组的集合合并。在此过程中要反复用到查询某个元素属于哪个集合的运算 并查集的定义及其实现 并查集是一种简单的用途广泛的集合,它支持以下3种操作: Union(Root1,Root2):把子集Root2并入到Root1中,要求Root1...原创 2018-10-24 20:39:48 · 284 阅读 · 0 评论