数据结构(C)树(1)

数据结构(C)树(1)

1.概念与性质
树是一种非线性结构,与前面的链表栈与队列(线性结构)不同。树(Tree)是由n(n>=0)个节点构成的有限集合。
当n=0,就为空树。
当n>0,必有一个树根(root),除了树根,其余的节点可以划分为很多个子集,也叫子树。
树的边说有方向性的,只能从树根指向某一节点,“只能从上到下”,有且只有一条路径,反之亦然。
术语:节点的度是指一个节点其子树的个数。
树的度树中所有节点中最大的度数。
子节点对某一节点而言,其子树的跟节点。父节点反过来。
节点的层次:根节点为第一层,依次往下数。树的深度也就说最大层次。
2.二叉树
任意节点的最大度为2。若二叉树不为空,则必然有一个根节点,以及有两个分别为左子树和右自树的子树。这两个子树当然也是二叉树。
二叉树的链式存储Code

  struct TreeNode{
  ElementType Data;/*数据域*/
  struct TreeNode*Left;/*左子树*/
  struct TreeNode*Right;/*右子树*/
  }
struct TreeNode*T;
T=NULL/*创建很简单*/

大概图示
3.二叉树的操作
二叉树的节点Count
思路:若二叉树位空,则返回0;
若不为空,泽必有一个root和两个子树。所以二叉树的节点数Count为1+左子树的节点数+右子树的节点数。
Code

int Count(struct TreeNode){
    if(T==NULLreturn 0return 1+Count(T->Left)+Count(T->Right);/*这里用到了递归的思想,因为为二叉树,根据二叉树的特点,用函数递归调用*/

下一节会讲到求叶节点(度数为0的节点,“树叶”)的数量,树高,以及如何遍历二叉树来确定树的形状。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值