1 二叉树的基本内容
1.1 二叉树的定义
p145
typedef int datatype;
struct bnodept
{
datatype data;//定义数据类型
struct bnodept *lchild,*rchild;//创建左右子树
};
typedef struct bnodept *bitreptr;
1.2 按先根序列建立二叉树的二叉链表,函数的返回值指向根节点
p149
//原文为crt_bt_pre,本文缩写为crt
bitreptr crt()
{
char ch;//定义字符类型
bitreptr bt;
ch=getchar();//键盘输入
if(ch=='#')return(NULL);//如果输入#,意味着该节点为空,返回上一节点
else
{
bt=(bitreptr)malloc(sizeof(struct bnodept));
bt->data=ch;//根节点指针
bt->lchild=crt();//左指针
bt->rchild=crt();//有指针
return(bt);
}
}
1.3 先根遍历DLR
p145
void preorder(bitreptr t)
{
if(t)
{
visit(t->data);//访问根节点
preorder(t->lchild);//先根遍历左子树
preorder(t->rchild);//先根遍历右子树
}
}
1.4 中根遍历LDR
p145