logo头像

待到风起时,扬帆济沧海

数据结构

常用算法代码模板

深度优先12345678910var vistied Setfunc dfs(node,vistied){ vistied.add(node) //doSomething for next_node in ...

深度优先和广度优先-理论

1、深度优先搜索介绍图的深度优先搜索(Depth First Search),和树的先序遍历比较类似。 它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先...

广度和深度搜索代码

无向矩阵图代码(DFS-BFS同有向矩阵)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525...

图-基本概念

图的定义定义:图(graph)是由一些点(vertex)和这些点之间的连线(edge)所组成的;其中,点通常被成为”顶点(vertex)”,而点与点之间的连线则被成为”边或弧”(edege)。通常记为,G=(V,E)。 图的种类根据边...

二叉堆

堆和二叉堆的介绍堆的定义堆(heap),这里所说的堆是数据结构中的堆,而不是内存模型中的堆。堆通常是一个可以被看做一棵树,它满足下列性质: 堆中任意节点的值总是不大于(不小于)其子节点的值 堆总是一棵完全树。将任意节点不大于其子节点...

二叉树

树的基本概念 树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上...

算法笔记

算法推导大O阶方法 用常数1取代运行时间中的所有加法常数 在修改后的运行次数函数中,只保留最高阶项 如果最高阶存在且不是1,则去除与这个项相乘的常数 常数阶首先顺序结构的时间复杂度。下面这个算法案例: 123int sum=0,n=...

栈和队列

栈概念 栈(英语:stack)又称为堆栈或堆叠,栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数...

双向链表

示意图 双向链表:只有一个指针指向最开始的结点。 双端(双向)链表:有两个指针分别指向两端的节点。 循环(双向)链表:指向形成一个闭环。:有两个指针分别指向两端的节点。 完整代码123456789101112131415161...

单向链表

操作流程示意图 完整代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657...