堆是一种比较特殊的数据结构,可以看成一颗树的数组对象。
或者
常见的堆有二叉堆、斐波那契堆等。堆有序,常用作数组中的排序,称为堆排序。
图由有限个节点V和边的结合E组成。两个顶点之间存在一条边,表示两个顶点具有相邻关系。图中的结点我们一般称为顶点。
图较为复杂,分别有邻接矩阵 、邻接表、十字链表、邻接多重表、边集数组等存储结构。
class Edge<T>(val from: Vertex<T>,
val to: Vertex<T>,
val weight: Double? = 0.toDouble()) {
}
class Vertex<T>(var data: T? = null, var index: Int = 0) {
//val edgeList : List<EdgeList<T>> = emptyList()
val edges: ArrayList<Edge<T>> = ArrayList()
var visited = false
//var distance = 0
fun addEdge(edge: Edge<T>){
edges.add(edge)
}
override fun toString(): String {
return data.toString()
}
}
代码来自https://www.jianshu.com/p/bce71b2bdbc8