数据结构树形结构

前言

C语言树形结构


一、树形结构:

 1、树的基本概念
    一种表示层次关系(一对多)的数据关系
    有且仅有一个特定的节点,该节点没有前驱,被称为根节点。
    剩余的n个互不相交的子集组成,其中的每一个子集也都是一棵树,被称为根节点的子树
    注意:树形结构具有递归性(树中有树)

 2、树的表示方法:倒悬树、嵌套法、凹凸法
 
 3、树的专业术语
    节点:组成树的基础元素,同时它也可以是一棵树
    节点的度:该节点子树的数量
    树的度:树中的节点的数量
    节点的层次:根节点的层次为1,它的孩子层次为2,孩子的孩子层次为3,以此类推
    树的深度:这棵树的最大层次树
    叶子节点:节点的度为0的节点
    双亲和孩子:节点的子树都成为孩子节点,该节点就是他们的双亲节点
    兄弟:具有同一个双亲节点,被称为兄弟节点
    祖先: 从根节点出发到该节点,中间经过的所有节点都称为它的祖先
    子孙: 一个节点的子树中的任意一个节点都称为它的子孙
    堂兄弟:双亲在同一层的节点,称为堂兄弟节点
    森林:n个互不相交的树的集合称为森林

 4、树的存储
    树可以顺序存储、链式存储,还可以混合存储,由于存储的信息不同,有以下三种常见表示方式:
    双亲表示法: 顺序存储
       位置  data  双亲的位置
        0     A       -1
        1     B        0
        2     C        0
        3     D        1
        4     E        1
        5     F        2
        6     G        3
        7     H        4
        8     I        4
        优点:方便找双亲
        缺点:不方便找孩子
    孩子表示法:
        顺序: 
        位置    data    sub_arr(存储孩子位置的数组)
        0       A       1,2
        1       B       3,4
        2       C       5
        3       D       6
        4       E       7,8
        5       F
        6       G
        7       H
        8       I
    链式+顺序
        位置    data    sub_arr(存储孩子位置的数组)
        0       A       1->2->n
        1       B       3->4->n
        2       C       5->n
        3       D       6->n
        4       E       7->8->n
        5       F
        6       G
        7       H
        8       I
        优点:找孩子方便
        缺点:找双亲不方便
    兄弟表示法:
        双亲值存储第一个孩子节点,然后链式指向所有的兄弟节点
        优点:可以方便查询到所有的兄弟节点
        缺点:查询双亲比较麻烦
    总结:普通树不常用,一般会转换成二叉树使用

总结

以上,有错误,还请指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值