前言
在此之前我们学习了二叉树的定义和储存方式,还学了一种特殊的二叉树---堆,
那今天我们就正式开始去学习二叉树了,是通过链式结构储存的二叉树,下面我会详细讲解
二叉树的创建和遍历方法。
相关链接
二叉树的基础知识点:数据结构-----树和二叉树的定义与性质_Gretel Tade 的博客-CSDN
博客
堆的相关方法代码实现:数据结构-----堆(完全二叉树)_Gretel Tade 的博客-CSDN 博客
二叉树的链式存储结构
#include<stdio.h>
#include<stdlib.h>
typedef char ElemType;
typedef struct binarytreenode {
ElemType data; //数据域
struct binarytreenode* left; //左指针
struct binarytreenode* right; //右指针
}BTnode;
二叉树的遍历
这里就会有人问了,咦二叉树都没创建呢,就开始学遍历?别急,下面听我慢慢说,二叉
树的创建是要利用的遍历的,这么说吧,遍历是贯穿整个二叉树的基础,没有遍历,就不会
有二叉树。二叉树的遍历分三种:前序遍历、中序遍历、后序遍历,下面我们接着看。
1.前序遍历
在一个二叉树中,前序遍历就是按照二叉树的外围跑一圈,所以从根节点开始,然后到左节
点,跑完全部的左节点,就进入到右节点,最后回到根部节点。如下图所示:
前序遍历的顺序为:根左右
前序遍历结果为: A B D H I E J C F K G
动图演示:
代码实现
//1.二叉树的前序遍历
void Btree_prev(BTnode* T) { //T 是这个树的根节点
if (!T) {