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

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

相关推荐
wanderist.32 分钟前
线性筛法详解:从筛质数到欧拉函数、Möbius 函数与约数函数
java·数据结构·算法
All for pursuit.44 分钟前
【设计-1】208.实现Trie (前缀树)
数据结构·c++·算法·leetcode
程序员清风2 小时前
哈希表:从键值映射到高效查找
数据结构·哈希算法·散列表
Logic1015 小时前
C语言/数据结构字符串题解:最短循环节——找出能重复构成原串的最短基础子串
c语言·数据结构·字符串·枚举·时间复杂度·算法题·kmp优化
垆边人似月.6 小时前
城市连通性(200分 / 并查集)
数据结构·算法·图论
Gust of wind6 小时前
串与KMP模式匹配:存储结构、基本操作、next数组手算
c语言·数据结构·后端·算法
by209997 小时前
list:迭代器与资源管理实现的综合叙述(下)
数据结构·c++·笔记·list
我不会起名字3227 小时前
二叉树的遍历与二叉搜索树:把递归、迭代、还原树一次讲透
数据结构·leetcode·二叉树·二叉搜索树
yi0118 小时前
DAY22: LeetCode 733:图像渲染——从二维网格开始理解 DFS 和 BFS
数据结构·笔记·python·算法·leetcode·深度优先·宽度优先
今夜有雨.9 小时前
图像运算、掩膜/ROI 与绘制交互
c语言·数据结构·c++·qt·算法·计算机视觉