首页 > 其他 > 详细

数据结构---树

时间:2020-11-16 11:47:32      阅读:42      评论:0      收藏:0      [点我收藏+]

树的定义

??树是n(n>=0)各节点的有限集。n=0事称为空树。在任意非空树中:

  1. 有且仅有一个特定的称为根的节点
  2. 当n>1时,其余节点可分为m个互不相交的有限集T1、T2、······、Tm其中每一个集合又是一棵树,并且称为根的子树如图
    技术分享图片

树的ADT

技术分享图片

二叉树

??二叉树是在树的定义下,子树只有左子树和右子树。
技术分享图片
??二叉链表的节点结构定义代码
技术分享图片

二叉树的遍历方法

前序遍历

规则是若二叉树为空,则空操作返回,否则先访问根节点,然后前序遍历左子树,在前序遍历右子树,如图,前序遍历为:ABDGHCEIF
技术分享图片
遍历算法:
void PreOrderT(Tree T)
{
if (T == NULL)
return;
printf("%c", T->data);
PreOrderT(T->lchild);
PreOrderT(T->rchild);
}

中序遍历

规则是若二叉树为空,则空操作返回,否则从根节点开始(先从根节点开始,不访问根节点),中序变量根节点的左子树,然后访问根节点,在中序遍历根节点的右子树。如图中序遍历为:GDHBAEICF
技术分享图片
遍历算法:
void MidOrderT(Tree T)
{
if (T == NULL)
return;
MidOrderT(T->lchild);
printf("%c", T->data);
MidOrderT(T->rchild);
}

后序遍历

规则是若二叉树为空,则空操作返回,否则从左到右先叶子后结点的方式遍历访问左右子树,最后访问根节点,如图 遍历顺序:GHDBIEFCA
技术分享图片
遍历算法:
void PostOrderT(Tree T)
{
if (T == NULL)
return;
PostOrderT(T->lchild);
PostOrderT(T->rchild);
printf("%c", T->data);
}

数据结构---树

原文:https://www.cnblogs.com/cheng-hong/p/13983757.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!