30 | 图的表示:如何存储微博、微信等社交网络中的好友关系?
该思维导图由 AI 生成,仅供参考
如何理解“图”?
- 深入了解
- 翻译
- 解释
- 总结
社交网络中的好友关系可以使用图来表示,图是一种非线性表数据结构,其中顶点表示用户,边表示用户之间的关系。在微信、微博等社交软件中,用户之间的关系可以用图来表示,包括无向图和有向图。对于带权图,可以表示用户之间的亲密度关系。图的存储方法有邻接矩阵和邻接表两种。邻接矩阵简单直观,但浪费存储空间;而邻接表节省空间,但查询效率较低。可以通过将邻接表中的链表改成平衡二叉查找树或有序动态数组来提高查询效率。文章介绍了图的概念和存储方法,为读者提供了对社交网络关系存储的技术理解。 在社交网络中,用户之间的关系可以用图来表示,包括无向图和有向图。对于带权图,可以表示用户之间的亲密度关系。图的存储方法有邻接矩阵和邻接表两种。邻接矩阵简单直观,但浪费存储空间;而邻接表节省空间,但查询效率较低。可以通过将邻接表中的链表改成平衡二叉查找树或有序动态数组来提高查询效率。文章介绍了图的概念和存储方法,为读者提供了对社交网络关系存储的技术理解。 社交网络中的好友关系可以使用图来表示,图是一种非线性表数据结构,其中顶点表示用户,边表示用户之间的关系。在微信、微博等社交软件中,用户之间的关系可以用图来表示,包括无向图和有向图。对于带权图,可以表示用户之间的亲密度关系。图的存储方法有邻接矩阵和邻接表两种。邻接矩阵简单直观,但浪费存储空间;而邻接表节省空间,但查询效率较低。可以通过将邻接表中的链表改成平衡二叉查找树或有序动态数组来提高查询效率。文章介绍了图的概念和存储方法,为读者提供了对社交网络关系存储的技术理解。
《数据结构与算法之美》,新⼈⾸单¥68
全部留言(195)
- 最新
- 精选
- Jerry银银地图 网络 Gradle这个编译工具,内部组织task的方式用的是有向图 Android framework层提供了一个CoordinatorLayout,其内部协调子view的联动,也是用的图
作者回复: 👍
2018-11-3017180 - 黄金的太阳请教老师 解决现实问题的时候当存储图有多种选择,例如: 1.用邻接表自己存 2.关系型库 3.图数据库 那么这三种方式每一种的适用场景,优缺点分别是什么呢?该如何取舍
作者回复: 1 内存中用临界表 2 要持久化存储就用数据库 2 超大图 并且涉及大量图计算。用专业的图数据库
2018-12-045149 - 五岳寻仙课后思考题: 1. 微信好友关系存储方式。无向图,也可以使用邻接表的方式存储每个人所对应的好友列表。为了支持快速查找,好友列表可以使用红黑树存储。 2. 生活工作中应用图的例子。很多,互联网上网页之间通过超链接连接成一张有向图;城市乃至全国交通网络是一张加权图;人与人之间的人际关系够成一张图,著名的六度分割理论据说就是基于这个得到的。
作者回复: 👍
2018-11-305118 - 微418信Im团a队teapot微信也是有向图吧……微信单方面删除好友之后另一方仍然会显示在好友列表中的啊(俗称僵尸)
作者回复: 哈哈,在这个问题上,从你的昵称来看,你最有发言权了。
2019-02-086101 - J.Smile早上没事看一篇打个卡,争哥,您早上几点起床啊,感觉您平时回复好早!
作者回复: 我6点左右起来😂
2019-09-3066 - 鹏程万里判断用户 A 是否关注了用户 B; 判断用户 A 是否是用户B的粉丝。这两个操作我怎么觉得是一个意思呢?
作者回复: 好像是的 第二个应该是 判断a是否被b关注
2018-12-0326 - Monday第1题:使用邻接表存储,并且使用改进升级版(使用跳表或散列表等) 第2题:1)我司所开发的工作流项目描述的就是有向图。2)小到公交车/地铁网络图,大到国家的铁路分布图。3)韩国偶像局,人物之间的暗恋关系。4)ETL跑批时,各JOB之间的依赖关系。。。等等等等太多了
作者回复: 👍
2018-12-04221 - 姜戈有序动态数组能否讲解一下
作者回复: 数据有序排列的动态数组
2018-11-30219 - 张三丰稀疏图那块没看懂,为何存稀疏图浪费空间呢?
作者回复: 因为边少 对应到矩阵里就都是0
2018-12-219 - 小文同学微信的用户无向图中,首先为了节约空间,采用的要是邻接表的方式,由于数据量巨大,进一步关于存储的优化和老师文中记述的类似。 图的数据结构相对其他数据结构而言是更加贴合生活场景的,事物和联系的信息可以映射为节点和边,例如百度在地图中的寻路功能应该是要利用到节点和边权重等方面的信息,期待老师对图的用法做更深入的讲解。 最后我希望提一个关于邻接表的问题,文中邻接表中,‘节点’指向的是下一个‘节点’的信息,那么‘边’的信息应该如何保存?要是‘节点’指向的是‘边’的信息,‘边’自己又包含另一头‘节点’的下标,这样的存储方式虽然不是很直观,但是也是一种有效的存储方式。老师是否可以就‘邻接表’上‘边’的存储讲解一下?
作者回复: 实际上 我们并不需要显示的存储边 具体存储方式你可以看下一节课开头的代码
2018-12-025