森林和二叉树的转换(哈喜老师)

1.树的存储结构

1.1:树的三种存储结构

树的三种存储结构分别是双亲表示法、孩子表示法、孩子兄弟表示法

1.1.1 :双亲表示法

cpp 复制代码
// 这里参考了王道书上的代码,哈喜老师课程中的代码不对
#define MAX_SIZE 100
// 结点结构的定义
typedef struct PTNode{
    ElemType data;  // 数据域,用于存储结点中的值
    int parent;     // parent域,用于指向该结点的双亲(parent等于-1时,表示该结点没有父结点,也就是说该结点是根结点)
}PTNode;

// 树的类型的定义
typedef struct {
    PTNode nodes[MAX_SIZE]; // 存储所有结点的数组
    int n;                  // 树中实际的结点个数
}PTree;

1.1.2 :孩子表示法

1.1.3 :孩子兄弟表示法

cpp 复制代码
typedef struct CSNode{
    ElemType data;                  //数据域
    struct CSNode *firstchild; //指向该结点最左边的孩子
    struct CSNode *nextsibling;  // 指向该结点右边相邻的兄弟
}CSNode, *CSTree;

2.树、二叉树、森林的转换 (很重要)

2.1:树转换为二叉树

2.2:二叉树转换为树

2.3:森林转换为二叉树

2.4:二叉树转换为森林

2.5:习题

习题一(有难度)

习题二:(偏简单)

习题三:(有难度)

习题四:(难,思路很不好想,暂时还不理解)

真题(难,还没完全理解)

3.树和森林的遍历

3.1:树的遍历 (非重点)

3.2:森林的遍历 (非重点)

3.3:树、二叉树、森林的遍历关系 (重点)

3.3.1:真题

相关推荐
mmmmath_32 小时前
LeetCode.541.反转字符串II
数据结构·算法·leetcode
醇氧3 小时前
MySQL 8.0 系统表损坏与引擎转换故障排查实战
数据结构·算法
shirsl6 小时前
算法 Day 5 树 / 二叉树 + DFS
数据结构·python·算法
多弗朗皮卡丘7 小时前
数据结构9:排序算法
c语言·数据结构·排序算法
杜 硕8 小时前
单链表的模拟实现
数据结构
爱吃苹果的日记本10 小时前
数据结构第四课—线性表Linear List
数据结构·学习
Lyyaoo.11 小时前
【动态规划】【待更新】
java·数据结构·算法
我不会起名字32211 小时前
一天一道算法题(35):电话号码的字母组合
java·数据结构·后端·python·leetcode·go·回溯
鹿角片ljp12 小时前
LeetCode 78:子集|回溯、选与不选、递归和path快照
java·数据结构·算法
YSL07012412 小时前
顺序表小补充
数据结构