当前位置:网站首页>二叉树和图2

二叉树和图2

2022-06-10 13:39:00 tnan2522

红黑树

红黑树也是二叉树,也可以叫动态平衡二叉树, 它可以在储存的过程时动态的平衡树的节点储存
如, 我要储存一个列表的数据,但是这个列表中的数据是已经排序好了的, 如:

lists =  [10, 20, 30, 40, 50, 60, 70, 80, 90]

当用普通的二叉树进行存储的时候,储存的结果是这样子的
在这里插入图片描述
它会一根筋的往右下角储存,这时候就体现不出来二叉树的查询效率了,因为这时候的二叉树就相当于一个列表了,如果要查 30 这个数据的话,那么这个二叉树要查 3 次,完全不方便

这时候就可以使用红黑树了,红黑树可以动态的调整树的结构,可以将这种情况将深度换成广度
在这里插入图片描述
它可以自动的调整节点,这样就做到了平衡效果

图(Graph)和树比起来,是一种更加复杂的非线性表结构。
图是由点之间连接形成的一个图
在这里插入图片描述

通过A 指向 C C 指向 E E 指向 。。。来完成一个图, 这个指向的关系线就叫做边
节点的指向叫做度,有多少个指向就有多少个度, 如 A中有三个度, A -> B A-> C A -> D
有三个指向就有三个度

有向图&无向图

在一些博客中,可以让用户关注别人,但是别人可以不关注该用户的,这种就是有向图
在这里插入图片描述
有 向图中有入度和出度,
入度就是有多少个数据执行该数据, 如 D -> A A就有一个入度
出度就是 该数据指向多少个数据 如 A -> B A -> C A有两出度

图的储存

图的储存可以使用:

邻接矩阵存储方法
邻接表存储方法

邻接表存储方法

在这里插入图片描述
在一个节点中,储存这这个节点的所有出度的数据,这中储存就是邻接表存储方法
当 有边是无向图的时候,可以把这两个数据当做相互指向的有向图

原网站

版权声明
本文为[tnan2522]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_42031243/article/details/106795101