摘要: 在邻接表中,删除一个顶点需要先删除其在顶点数组中的存储,再删除在其他结点中与被删除节点相关的边,具体代码如下: /* * 邻接表的定义 * 采取头结点数组+边表节点链表的结构 */ map<string,int> mmp;//映射字符串和坐标之间的关系 struct ArcNode//边表节点 { 阅读全文
posted @ 2019-03-20 15:41 zju_cxl 阅读(737) 评论(0) 推荐(0) 编辑
摘要: 采取冒泡的思想,一次选取两个,再套一层循环即可,但是由于在邻接表中表头节点和边表节点的数据类型并不一样,因此这相当于一个没有头结点的链表的排序。 可以优化一下的是:如果走一遍没有发生交换,说明已经有序了,因此就不用再进行冒泡了。可以直接跳出循环,减少循环次数。 在边表节点中,我存储的是string类 阅读全文
posted @ 2019-03-20 15:35 zju_cxl 阅读(230) 评论(0) 推荐(1) 编辑
摘要: Dijkstra算法是求最短路径的经典算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。 Dijkstra算法采用的是贪心算法的策略,也正是因为Dijkstra这种贪心的策略,导致了其在处理负权路上的无解,因此,使用Dijkstra算法的一大前 阅读全文
posted @ 2019-03-20 15:25 zju_cxl 阅读(702) 评论(0) 推荐(0) 编辑