![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
数据结构相关
CoderWriter
这个作者很懒,什么都没留下…
展开
-
最短路径
Floyd Floyd算法可以处理带有负权边的图,但不能处理带有负权回路的图 算法思想:通过引入中间边来松弛两点之间的距离 算法核心语句: //floyd算法:求图上任意两点之间的最短路径 for(int k =1;k<=n;++k){ for(int i=1;i<=n;++i){ for(int j=1;j<=n;++j){ if(e[i][j]>e[i][k]+e[k][j]){ e原创 2020-10-02 19:39:21 · 156 阅读 · 0 评论 -
素数判断
普通方法 复杂度:O(n*sqrt(n)) bool is_prime(int n){ int m=(int)sqrt(n); for(int i=2;i<=m;++i){ if(n%i==0) return flase; } return true; } 6倍法 原理:当x大于等于5时可以发现x可以写成6n-1,6...原创 2019-12-04 13:50:01 · 170 阅读 · 0 评论 -
线索二叉树
概念:在一棵具有n个节点二叉树中,若采用二叉链表存储结构,在2n个指针域中有n+1个空指针域,线索二叉树就是利用这些空指针来指向节点的前驱节点或后驱节点从而使二叉树的某些操做得到优化的目的。 ...原创 2019-05-25 18:00:45 · 282 阅读 · 0 评论 -
二叉树深度问题
递归求解: int SECUR_BEDEPTH(BTREE T) { int ldepth=0,rdepth; if(T){ ldepth=BEDEPTH(T->lchild); rdepth=BEDEPTH(T->rchild); return ldepth>rdepth? ldepth+1:rdepth+1; ...原创 2019-05-17 19:44:47 · 407 阅读 · 0 评论 -
二叉树的遍历
前序遍历 递归算法: void RECUR_PREORDER(BTREE T) { if(T){ VISIT(T); PREORDER(T->lchild); PREORDER(T->rchild); } } 非递归算法: 核心思想:设置一活动指针p...原创 2019-05-17 19:56:16 · 242 阅读 · 0 评论 -
KMP模板
kmp模板: //得到next数组 void get_next(string s,int& next) { int i=0; int j=-1; next[i]=j; int len=s.length(); while(i<len){ if(j==-1||s[i]==s[j]){ ++i; ...原创 2019-12-15 12:25:14 · 130 阅读 · 0 评论