Leetcode、Kaggle、JavaEE、图像处理、深度|

ZzUuOo666

园龄:7年6个月粉丝:94关注:0

随笔分类 -  数据结构算法

求单源最短路径两顶点最短距离(BFS)
摘要://(矩阵)求图G中顶点x的第一个临接点,如果有返回其下标,否则返回-1 int FirstNeighbor1(MGraph G,int x){ if(x >= MaxVertexNum) return -1; for(int i = 0;i < MaxVertexNum;++i){ if(G.Ed
513
0
0
运用DFS算法解决的图的相关算法应用
摘要:/* 求无向图G的连通分量个数 dfs运用 */ void DFS(Graph G,int v){ ENode *p; visited[v]=true; visit(t); p=G->adjList[v].firstarc; while(p!=null){ if(visited[p->adjvex]
535
0
0
关于图的简单路径,输出、是否存在等总结
摘要://输出图G从顶点u 到 v 的所有简单路径 void Allpath(Graph G,int u,int v,int m,int path[],int i){//m记录每一个顶点的下一个邻接点,i初值为0 ENode *p; int j,n; if(m==v){ for(j=0;j<=i;j++)
631
0
0
邻接表与邻接矩阵互换
摘要://邻接表 互换 矩阵 //邻接矩阵-》邻接表 void MatrixToList(Graph &G,int A[][]){ for(int i=0;i<G.vertices;i++){ adjList[i].firstarc=null; } for(int i=0;i<G.vertices;i++
306
0
0
关于图的算法应用总结
摘要://顶点的度 //邻接表 int count_Degree(Graph G,int v){ int count=0; ENode *p; for(p=adjList[v].firstarc;p!=null;p=p->nextarc){ count++; }//出度 for(int i=0;i<G.v
330
0
0
链表顺序表删除插入算法应用总结
摘要://顺序表中,删除所有元素值为k的元素 O(n) O(1) void Delete(Sqlist &L,int k){ int num=0; int i=0,j=0; while(j<=L->length-1){ if(L->data[j]!=k){ L->data[i++]=L->data[j++
318
0
0
链表顺序表 逆置、合并、分解算法总结
摘要://逆置不带头结点的单循环链表,有尾指针 void invert(LinkList &head){ LNode *p,*a,*r; p=head->next; q=p->next; p->next=head; while(p!=head){ r=q->next; q->next=p; p=q; q=
410
0
0
单链表的直接插入、简单选择插入算法
摘要://单链表的直接插入排序 void InsertSort(LinkList &L){ LNode *p=L->next; LNode *q,*r; if(p!=null){//原单链表中有一个或多个结点 r=p->next;//保存p结点的后继结点 p->next=null; p=r; while(
739
0
0
[二叉树算法]二叉排序树算法总结
摘要://二叉排序树 //从大到小输出>=k的关键字 20 void OutPut(BTNode *t,int k){ if(t==null) return; if(t->rchild!=null){ OutPut(t->rchild,k); } if(t->data>=k){ printf("%d\n"
365
0
0
[二叉树算法]线索二叉树算法总结
摘要://线索二叉树 //中序遍历线索二叉树 19 //tag为0 指示有孩子 tag为1说明有前驱或后继 BTNode *firstNode(BTNode *t){ while(t->ltag==0){ t=t->lchild; } return t; } BTNode* NextNode(BTNode
314
0
0
[二叉树算法]先序中序后序遍历 算法应用总结
摘要://先序遍历下的第k个结点 int preorder(BTNode *t,int k,int n){ int result; if(t==null) return 0; if(n==k) return t->data; result=preorder(t->lchild,k,n+1); if(res
458
0
0
[二叉树算法]删除叶子节点 (递归)
摘要://删除叶子节点 void Delete_leaf(BTNode *t){ if(t==null) return; if(t->lchild!=null){ BTNode* tlchild=t->lchild; if(tlchild->lchild==null && t->trchild==null
2275
0
0
[二叉树算法]已知先序和中序建立一颗二叉树
摘要://已知先序和中序建立一颗二叉树 void CreateTree(BTTree t,int[] pre,int[] in, int l1,int h1,int l2,int h2){//l1 为先序数组的第一个,h1 为先序数组的最后一个 int i; T=(BTNode*)malloc(sizeo
401
0
0
[二叉树算法]同时统计叶子节点数和非叶子节点数(递归)
摘要://同时统计叶子节点数和非叶子节点数 10 void Count(BTNode *t,int &num1,int &num2){ if(t==null) return; else{ if(t->lchild==null && t->rchild==null){ num1++; }else{ num2
1047
0
1
[二叉树算法]判断两棵树是否相似或相等(递归)
摘要://判断两棵树是否相似 树形一样 数值不一样 8 bool IsSimilar(BTNode *t1,BTNode *t2){ if(t1==null && t2==null) return true; if(t1==null || t2==null) return false; else{ ret
1355
0
0
[二叉树算法]关于判断是否为BST的算法
摘要://判断是否为BST 搜索树==二叉排序树 1、递归知最大最小值。2、先中序判是否单调 bool IsValidBST(BTNode *p,int low,int high){ if(p==NULL){ return true; }else{ if(low<p->data && high>p->da
448
0
0
[二叉树算法]让树所有叶子节点连成一个单链表,让rchild作为 next指针
摘要://让树所有叶子节点连成一个单链表,让rchild作为 next指针 LNode *head=null,*pre=null;//全局变量 LNode *InOrder(BTNode *T){ if(T!=null){ InOrder(T->lchild); if(T->lchild==null &&
395
0
0
[二叉树算法]关于层次遍历二叉树的一些算法总结
摘要://递归遍历二叉树 void levelOrder(BTNode *T){ if(T==null) return; int height=getHeight(T); for(int i=1;i<height;i++){ _levelOrder(T,i); } } void _levelOrder(B
761
0
0
LRU算法与LRUCache
摘要:关于LRU LRU(Least recently used,最近最少使用)算法是操作系统中一种经典的页面置换算法,当发生缺页中断时,需要将内存的一个或几个页面置换出,LRU指出应该将内存最近最少使用的那些页面换出,依据的是程序的局部性原理,最近经常使用的页面再不久的将来也很有可能被使用,反之最近很少
1182
0
0
很详尽KMP算法(厉害)
摘要:作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。后收录于新书《编程之法:面试和算法心得》第4.4节中。 1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找
110844
18
63
点击右上角即可分享
微信分享提示
深色
回顶
收起