数据结构(python)----- 树与二叉树

这篇博客详细介绍了树与二叉树的概念,包括树的术语、种类,特别是二叉树的性质和创建。重点讨论了二叉树的遍历,包括广度优先和深度优先遍历(先序、中序、后序)的方法,并提供了给定序列画出树的分析过程。此外,还提到了二叉排序树的相关操作链接。
摘要由CSDN通过智能技术生成

一、树与二叉树

树(tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合(二维空间)。 它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶是朝下的。它具有以下的特点:

  • 每个节点有零个或多个子节点;
  • 没有父节点的节点称为根节点;
  • 每一个非根节点有且只有一个父节点;
  • 除了根节点外,每个子节点可以分为多个不相交的子树。

1.树的术语

在这里插入图片描述
在这里插入图片描述

2.树的种类

在这里插入图片描述
二叉树:每个节点最多含有两个子树的树称为二叉树。
在这里插入图片描述
完全二叉树:如果二叉树中除去最后一层节点都为满二叉树,即除了最后一层外每一层的节点都达到了最大(第一层一个节点,第二层两个节点,第三层四个节点),且最后一层的节点依次从左到右分布, 则此二叉树被称为完全二叉树。
在这里插入图片描述
满二叉树:如果二叉树中除了叶子结点,每个结点的度都为 2,则此二叉树称为满二叉树。如下图:
在这里插入图片描述

3.树的存储与表示

顺序存储(用的不多):将数据结构存储在固定的数组中,然在遍历速度上有一定的优势,但因所占空间比较大,是非主流二叉树。二叉树通常以链式存储
在这里插入图片描述
链式存储:
在这里插入图片描述

4.常见树的应用场景

在这里插入图片描述

二、二叉树

1.二叉树的性质

在这里插入图片描述

2.二叉树的创建

二叉树节点的封装 https://blog.csdn.net/weixin_44568633/article/details/103749074

'''
二叉树创建:
与队列过程差不多
'''

class Node(object):
    def __init__(self,item):
        self.elem=item
        self.lchild=None
        self.rchild=None

class Tree(object):
    '''二叉树'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值