树是一种重要的非线性数据结构(二叉树是每个结点最多有两个子树的有序树)
- 二叉树的定义:有且仅有一个根结点,除根结点外,每个结点只有一个父结点,最多含有两个子结点,子结点有左右之分。
- 存储结构
-
- 二叉树的存储结构可以采用顺序存储,也可以采用链式存储,其中链式存储更加灵活。
- 在链式存储结构中,与线性链表类似,二叉树的每个结点采用结构体表示,结构体包含三个域:数据域、左指针、右指针。
二叉树的创建和遍历
#include<stdio.h>
//typedef int Elemment;
typedef char Elemment;
typedef struct node
{
Elemment data;
struct node *lchild,*rchild; //左右子结点指针
} BinTree;
/*测试数据*/
//HDB#A##C##G#FE###
//1 2 3 -1 4 -1 -1 5