图解图论介绍及应用(2):图的表示的介绍

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Vardan Grigoryan

编译:ronghuaiyang

导读

知识图谱是AI领域非常有用的一种工具,知识图谱的基础就是图论,从今天开始,给大家介绍一些图论的基础内容,今天是第2篇,图的表示的介绍

这是一项相当乏味的工作,所以要有耐心。还记得数组和链表之争吗?如果需要快速的元素访问,可以使用数组,如果需要快速的元素插入/删除,可以使用列表。但是,我相信你从来没有纠结于“如何表示列表”之类的东西。不过,对于图形来说,实际的表示是很麻烦的,因为首先你应该决定如何准确地表示一个图。相信我,你不会喜欢这样的。邻接列表,邻接矩阵,还是边列表?要不扔个硬币试试?

你估计是扔的太用力了,因为我们会从树开始。你一定见过二叉树(简称BT)(下面的图不是二叉搜索树)。

640?wx_fmt=png

因为它由顶点和边组成,所以它是一个图。你可能还记得最常见的二叉树是如何表示的(至少在教科书中是这样)。

 
 

对于已经熟悉二叉树的人来说,它似乎太基础了,但是我仍然需要说明它,以确保我们在同一个基础上(注意,我们仍然在处理伪代码)。

如过你之前没有接触过树,请仔细阅读上面的伪代码,然后按照下图中的步骤进行操作。

640?wx_fmt=png

颜色只是为了可视化

二叉树是一个简单的节点“集合”,每个节点都有左子节点和右子节点。二叉搜索树更有用,因为它应用了一个简单的规则,允许快速键值查找。二叉搜索树(BST)保持键值的排序顺序。你可以自由地使用任何你想要的规则来实现BT(尽管它可能会根据规则更改其名称,例如,min-heap或max-heap)。BST最重要的期望是它满足二分查找属性(这就是名称的来源)。每个节点的键值必须大于其左子树中的所有的值,小于其右子树中的所有的值。

关于"大于"这个命题这对于理解BST的功能非常重要。当你将属性更改为“大于或等于”时,BST将能够在插入新节点时保存重复的键值,否则它将只保留具有唯一键值的节点。你可以在网上找到关于二叉搜索树的许多好文章。我这里不会提供一个二叉搜索树的完整实现,但是为了保持一致性,我们将在这里演示一个简单的二叉搜索树。

640?wx_fmt=png

640?wx_fmt=png— END—

英文原文:https://medium.com/free-code-camp/i-dont-understand-graph-theory-1c96572a1401

640?wx_fmt=jpeg

请长按或扫描二维码关注本公众号

喜欢的话,请给我个好看吧640?wx_fmt=gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值