树(C++)从小白开始(上)

首先引入树的概念,在链表中我们讨论的是一对一的线性结构,而在生活中,我们有很多一对多的情况需要处理,所以引入了树的概念。

树是n个结点的有限集,n=0的时候成为空树,在任意一课非空树中,有且仅有一个特定的点称为根(root)的结点,当n>1时,其余结点可以分为M个互不相交的有限集T1,T2....,其中每一个有限集本身又是一颗树,并且称为根的字数。

而二叉树,则是一种特别重要的树的类型

二叉树则是有穷节点的集合,可以为空,由根节点和称为其左子树和右子树的结点的两个不相交的二叉树组成, 二叉树的子树有左右之分

二叉树中又有特殊的完全二叉树,斜二叉树,完美二叉树(满二叉树)

二叉树的定义

struct BiTNode
{
   ElemType data;
   BiTNode *lchild,*rchild;
}*BiTree;

这里插一句题外话在定义数据结构时 

*BiTree 等价于  typedef BiTNode *BiTree;

类似于 int *a;

二叉树的先序遍历

bool PreOrderTraverse(BiTree &T) //BiTree &T 等价于 BiTNode *&T;这是一个指向指针的引用
{
    if(T==NULL)
{
    return true;
}
    vist(T); //访问根
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值