前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据结构|堆和树[3]

数据结构|堆和树[3]

作者头像
福贵
发布2020-05-29 15:43:36
6330
发布2020-05-29 15:43:36
举报
文章被收录于专栏:菜鸟致敬菜鸟致敬

堆是一种比较特殊的数据结构,可以看成一颗树的数组对象。

  • 堆中的某个节点的值总是不大于或不小于其父节点的值
  • 堆是一颗完全二叉树 按照根节点是最大值还是最小值,分为了大顶堆和小顶堆。
  • 显然,堆的元素序列满足了以下条件

或者

常见的堆有二叉堆、斐波那契堆等。堆有序,常用作数组中的排序,称为堆排序。

图由有限个节点V和边的结合E组成。两个顶点之间存在一条边,表示两个顶点具有相邻关系。图中的结点我们一般称为顶点。

图较为复杂,分别有邻接矩阵 、邻接表、十字链表、邻接多重表、边集数组等存储结构。

代码语言:javascript
复制
class Edge<T>(val from: Vertex<T>,
              val to: Vertex<T>,
              val weight: Double? = 0.toDouble()) {
}
代码语言:javascript
复制
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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与MySQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档