本篇博客主要涉及二叉树的基本操作,创建,三种遍历,求节点等(C写法)。
二叉树作为数据结构的难点,想必让很多人望而生畏,各种复杂的代码和算法实在让人头大,博主也是近期刚接触二叉树,对于二叉树的探究也不是很深刻,所以有纰漏还请体谅。
1.首先了解下二叉树
二叉树其实是树的一种特殊形式,数据结构中除了图也就是树最难了,二叉树的定义是采用的一种递归方式(如果不了解递归,可自行百度或者看看其他大牛关于递归的详细阐述,新手可能在刚接触递归的时候老是担心递归的细节会不会出错,其实递归的中心思想就是把大问题切割成小问题而已)。
二叉树的特点有:点的度只可能为0,1,2,度为2的点个数+1=叶子结点个数等。
2.下面直接进入二叉树的实现
二叉树的数据结构也包含顺序和链序的,其实就是分别通过数组和指针来实现,考虑到二叉树的结构,选择链序的会更好。
所以可以写出二叉树数据结构
struct btnode{
char data;
btnode* lchild;
btnode* rchild;
};
3.二叉树的创建
知道了二叉树的存储结构,怎么去建立一棵二叉树呢,递归方法是最为便捷和最好理解的。
void create(btnode* &T)