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

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:真题

相关推荐
不会就选b1 天前
数据结构之顺序表和链表的OJ题(上)
数据结构·链表
啦啦啦啦啦zzzz1 天前
数据结构:二叉树的线索化
数据结构·算法
如竟没有火炬1 天前
寻找峰值——二分
java·开发语言·数据结构·python·算法·散列表
he___H1 天前
B、B+树和vue部分知识
数据结构·vue.js·b树
hai3152475431 天前
结构化编程:AI工业化编程的探索
数据结构·自然语言处理·硬件工程·动态规划·集成学习
2401_868534781 天前
2026年5月系统分析
数据结构·python·tornado
袋鼠云数栈1 天前
数栈 V7.0 多模态数据智能平台:打造 AI-Ready 的企业数据底座
大数据·数据结构·数据库·人工智能·数据治理·多模态
迈巴赫车主1 天前
优先队列(PriorityQueue)
数据结构·算法
Boom_Shu1 天前
构造函数程序
数据结构·算法
Lucky_ldy1 天前
数据结构从入门到精通:链表
数据结构·链表