数据结构-树树及森林的定义

Posted Mount256

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构-树树及森林的定义相关的知识,希望对你有一定的参考价值。

文章目录

1 双亲表示法

dataparent
存储某个结点的数据信息存储该结点的双亲所在数组中的下标
#define MAX 50

typedef struct TreeNode
    int data; // 数据域
    int parent; // 双亲结点的下标
 TNode;

typedef struct Tree
    TNode nodes[MAX]; // 结点数组
    int n; // 当前结点数
 T;

2 孩子表示法

2.1 孩子表示法

  • 表头数组的表头结点:
datafirstchild
存储某个结点的数据信息存储该结点的孩子链表的头指针
  • 孩子链表的孩子结点:
datanext
存储某个结点在表头数组中的下标存储指向某结点的下一个孩子结点的指针
#define MAX 50

typedef struct ChildNode // 孩子链表的孩子结点
    int data; // 数据域
    struct ChildNode *next; // 下一个孩子结点
 CNode;

typedef struct TreeNode // 表头数组的表头结点
    int data; // 数据域
    CNode *firstChild; // 孩子链表的头指针
 TNode;

typedef struct Tree
    TNode nodes[MAX]; // 结点数组
    int n; // 结点总数

2.2 双亲孩子表示法

  • 表头数组的表头结点:
dataparentfirstchild
存储某个结点的数据信息存储该结点的双亲所在数组中的下标存储该结点的孩子链表的头指针
  • 孩子链表的孩子结点:
datanext
存储某个结点在表头数组中的下标存储指向某结点的下一个孩子结点的指针
#define MAX 50

typedef struct ChildNode // 孩子链表的孩子结点
    int data; // 数据域
    struct ChildNode *next; // 孩子链表的头指针
 CNode;

typedef struct TreeNode // 表头数组的表头结点
    int data; // 数据域
    int parent; // 双亲结点的下标
    CNode *firstChild; // 下一个孩子结点
 TNode;

typedef struct Tree
    TNode nodes[MAX]; // 结点数组
    int n; // 结点总数

3 孩子兄弟表示法

datafirstchildrightsib
存储某个结点的数据信息存储该结点的孩子链表的头指针存储该结点的右兄弟结点的存储地址
typedef struct TreeNode
    int data; // 数据域
    struct TreeNode *firstChild; // 孩子链表的头指针
    struct TreeNode *rightsib; // 右兄弟的地址
 TNode, *Tree;

以上是关于数据结构-树树及森林的定义的主要内容,如果未能解决你的问题,请参考以下文章

二叉树树森林

树和森林

28 树和森林

数据结构-树树二叉树森林的转换

树及二叉树

树的存储结构以及树和森林的遍历(C语言)