【入门级】基于《算法与数据结构》教材的二叉树问题(实例、创建、先中后层遍历、叶子数、深度)

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


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值