树与图
一棵树就是一个满足一定要求的顶点与边的非空集合体。一个顶点就是一个简单的对象(也被称为是节点),它可以有个名字,并且可以携带其他关联信息;一个边就是两个节点之间的连接。树中的一条路径就是一个不同的节点序列,在序列中连续的节点由树中的边连接。定义一棵树的性质就是要有一条简明的路径连接任意两个节点。如果在几对节点中有不止一条的路径,或者在几对节点中没有路径,那样我们就有了一个图;我们没有树。一组不想交的树被称作森林。
一棵有根树就是我们在其中指派一个节点作为树的根的树。在一棵有根树中,任何节点都是一棵由该节点及其下面的节点组成的子树的根。
在根与树中其他节点之间只有一条路径。每一个节点(除了根)都只有一个节点在它的上面,这个节点被称作父节点,而直接在其下面的节点被称为子节点。没有子节点的节点被称作叶子或是终端节点。在特定的应用中,每一个节点的子节点被排序方法是有着重要意义的;而在另外一些应用中,其意义却并不大。
一个图就是一组节点,它与连接着不同节点对的一组边在一起(这些节点至多有一条边连接着任一对节点)。我们可以想象,从某个节点开始,跟随一条边到这条边的连续节点,然后跟从那个节点到另一个节点的边,以此类推。以这种方式,一个从一个节点到另一个节点的边的序列(没有节点出现两次)被称为简单路径。如果有一条简单路径连接任何节点对,一个图就是连通的。除了开头与末尾的节点是相同的之外一条简单路径被称作环路。
每一棵树都是一个图,哪一些图是树呢?如果一个图满足以下四个条件的任意一条,我们就可以把它考虑为树:G有N-1条边,并且没有环路;G有N-1条边,并且是连通的;只有一条路径连接G中的每一对顶点;G是连通的,但在任意边被删除后不再保持连通。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?