数据结构
文章平均质量分 87
xiaohuihuicb
分享快乐
展开
-
Dijkstra算法几大模板
主要分为五部分邻接矩阵版主函数普通邻接表版vector版优先队列版算法思想:每次选出dis最小的那个点i,则dis[i]必定为为顶点s到顶点i的最短距离更新所有与i相邻的顶点的dis值依据:如果存在一条i到j的最短路径,其经过的节点为(i……k,j)。那么(i……k)的这条路径也必然是i到k的最短路径。 每个版本的最初都是构建图,首先将图初始化,然后进行加边。对于原创 2015-07-23 17:07:34 · 3285 阅读 · 1 评论 -
实现由双亲节点存储的树转化为二叉树的遍历算法实现
都知道,树的先根遍历和后根遍历分别对应了二叉树的先序遍历和中序遍历,而由先序遍历和中序遍历可以确定唯一的二叉树。#include#include#includeusing namespace std;vectorpre;//保存先序遍历结果vectorpost;//保存后序遍历结果int bitree[100];//保存二叉树列表形式结果int n;int first_原创 2016-04-10 10:02:04 · 3637 阅读 · 0 评论 -
POJ 1787 Charlie's Change 记录路径的多重背包
Charlie's ChangeTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 3499 Accepted: 1032DescriptionCharlie is a driver of Advanced Cargo Movement, Ltd. Charl原创 2015-07-28 19:54:54 · 590 阅读 · 0 评论 -
找下标最大的差值
question:给定一个数组A,找出A[p]>=A[q] 中 p-q的最大值。要求O(n)的时间和空间复杂度answer1:计算数组b,使得b[j]为A[j...n-1]的最大值。那数组就是一个递减的数组。遍历A数组,当A[i]<b[j]时,说明在j...n-1之间有k使得A[j]<A[k]。那找到最小的j使得A[i]>b[j],这样找到如果q为i时的最...原创 2019-07-09 20:47:32 · 334 阅读 · 0 评论