树的实现

一.树的定义和细节:
/*
1.树是由一些节点组成的集合,这个集合可以是空集。
2.如果这个集合非空集,那么一棵树就是由根节点,以及0个或者多个非空的子节点组成。
3.树叶是没有下一级节点(儿子节点)的节点。
4.对任意节点N的深度是从根节点到节点N的唯一路径长。
5.节点N的高是从节点N到一片树叶的最长路径长,所以所有的树叶的高都是0。
6.一棵树的高等于它的根的高。
7.一棵树的深度等于它的最深的树叶的深度,并且该深度总是等于这棵树的高。
*/
二.树的实现方法
/*
8.实现树的一种方法可以是在每一个节点除数据外还要有一些指针,
9.使得该节点的每一个儿子节点都有一个指针指向它。
10.将每一个节点的所有儿子节点都放在树节点的链表当中。
*/

typedef struct TreeNode *PtrToNode;
struct TreeNode
{
    int x;
    PtrNode First Child;
    PtrNode NextSibling;
};

三./*二叉树:二叉树最多拥有两个子节点

  1. 一个节点就是有关键信息加上两个指向其他节点的指针(Left和Right)组成的。 应用于链表上的规则可以应用于树上。
  2. 特别的,当进行一次插入时,必须调用malloc创建一个节点,当然,节点可以在调用free之后被释放。

*/

typedef struct TreeNode *PtrNode;

typedef struct PtrNode Tree;

struct TreeNode
{
    int x;
    Tree Left;
    Tree Right;
};
posted @   Chasssser  阅读(291)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示