7.数据结构与算法--树

本文介绍了树这种一对多关系的数据结构,详细讲解了树的定义、结点分类、结点间的关系、结点的层次以及结点的其他相关概念。重点探讨了三种树的存储结构:双亲表示法、孩子表示法(包括两种方案)和双亲孩子表示法,展示了各种存储方法的实现细节和优势。
摘要由CSDN通过智能技术生成

7.树

  • 之前的栈,队列都是一对一的关系

  • 树是一种:一对多的关系

7.1树的定义

错误的示范:

7.2结点分类

7.3结点的关系

  • 结点D的祖先是B,A
  • 结点A是节点B的双亲
  • 结点D,E,F是结点B的孩子、
  • 结点D,E,F 互相称为兄弟

7.4结点的层次

 

7.5结点的其他概念

 

 

7.6树的存储结构

  • 双亲表示法(利用数组的结构)

 

第一列为:数组的下标

第二列data为:数组存放的data

第三列parent为:该结点的双亲存放位置。比如结点G,它的双亲就是D,而D在数组下标的位置则是7,因此G的双亲位置填入7

 

 

  • 孩子表示法

  • 孩子表示法方案一

空间里面存放的是指针:该指针是存放指向子节点的地址

  • 孩子表示法方案二(利用数组+链表的结构)

分析:先创建一个数组,数组的第一块内容可以自行存放数据data,

数组的第二块内容存放:该节点下的第1个子节点的地址(就像链表一样)

然后这第1个子节点的数据域存放data所在的下标,  指针域存放第2个子节点的地址。

如果没有子节点,就放入一个NULL

例如:

A后面的空间,存放了第1个子节点的地址,子节点的1意味着数组下标1的数据B,子节点1后面空间则存放第2个子节点的地址。

 

  • 双亲孩子表示法

代码架构

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值