当前位置: 首页 > news >正文

企业网站的布局产品推广ppt范例

企业网站的布局,产品推广ppt范例,ssh小型购物网站开发,湖州设计公司目录 一、树的术语及定义 二、树的实现 2.1 列表之列表 2.2 节点与引用 一、树的术语及定义 节点: 节点是树的基础部分。它可以有自己的名字,我们称作“键”。节点也可以带有附加信息,我们称作“有效载荷”。有效载荷信息对于很多树算法…

目录

一、树的术语及定义

二、树的实现

2.1 列表之列表

2.2 节点与引用


一、树的术语及定义

节点:

节点是树的基础部分。它可以有自己的名字,我们称作“键”。节点也可以带有附加信息,我们称作“有效载荷”。有效载荷信息对于很多树算法来说不是重点,但它常常在使用树的应用中很重要。

边:
边是树的另一个基础部分。两个节点通过一条边相连,表示他们之间存在关系。除了根节点以外,其他每个节点都仅有一条入边,出边则可能有多条。

根节点:

根节点是树中唯一没有入边的节点。

路径:

路径是由边连接的有序节点列表。比如,哺乳纲\rightarrow食肉目\rightarrow猫科\rightarrow猫属\rightarrow家猫就是一条路径。

子节点:

一个节点通过出边和子节点相连。

父节点:

一个节点是其所有子节点的父节点。

兄弟节点:

具有同一父节点的节点互称为兄弟节点。

子树:

一个父节点及其所有后代的节点和边构成一颗子树。

叶子节点:

叶子节点没有子节点。

层数:

节点n的层数是从根节点到n的唯一路径长度。根节点的层数是0

高度:

树的高度是其中节点层数的最大值

定义基本术语后,就可以进一步给出树的正式定义。实际上,下面提供了两种定义,其中一种涉及节点和边,另一种涉及递归。递归定义很有用。

定义一:树由节点及连接节点的边构成。树有以下属性:

  • 有一个根节点;
  • 除根节点外,其他每个节点都与其唯一的父节点相连;
  • 从根节点到其他每个节点都有且仅有一条路径;
  • 如果每个节点最多有两个子节点,我们就称这样的树为二叉树

定义二:一棵树要么为空,要么由一个根节点和零颗或多颗子树构成,子树本身也是一棵树。每颗子树的根节点通过一条边连到父树的根节点。

二、树的实现

根据上面的定义,可以使用以下函数创建并操作二叉树。

  • BinaryTree()创建一个二叉树实例。
  • getLeftChild()返回当前节点的左子节点所对应的二叉树。
  • getRightChild()返回当前节点的右子节点所对应的二叉树。
  • setRootVal(val)在当前节点中存储参数val中的对象。
  • getRootVal()返回当前节点存储的对象。
  • insertLeft(val)新建一颗二叉树,并将其作为当前节点的左子节点。
  • insertRight(val)新建一颗二叉树,并将其作为当前节点的右子节点。

实现树的关键在于选择一个好的内部存储技巧。Python提供两种有意思的方式,我们在选择前会仔细了解这两种方式。第一种称作“列表之列表”,第二种称作“节点与引用”。

2.1 列表之列表

在“列表之列表”的树中,我们将根节点的值作为列表的第一个元素;第二个元素是代表左子树的列表;第三个元素是代表右子树的列表。

myTree=['a', #根节点['b', #左子树['d',[],[]],['e',[],[]] ],['c', #右子树['f',[],[]],[] ]]

注意,可以通过标准的列表切片操作访问子树。树的根节点是myTree[0],左子树是myTree[1],右子树是myTree[2]。“列表之列表”表示法有个很好的性质,那就是表示子树的列表结构很符合树的定义,这样的结构是递归的!由一个根节点和两个空列表构成的子树是一个叶子节点。还有一个很好的性质,那就是这种表示法可以推广到有很多子树的情况。如果树不是二叉树,则多一个子树只是多一个列表。

 接下来提供一些便于将列表作为树使用的函数,以正式定义树数据结构。注意,我们不是要定义二叉树类,而是要创建可用于标准列表的函数。

列表的函数BinaryTree:

def BinaryTree(r):return [r,[],[]]

BinaryTree函数构造一个简单的列表,它仅有一个根节点和两个作为子节点的空列表。要给树添加左子树,需要在列表的第二个位置加入一个新的列表。请务必当心:如果列表的第二个位置已经有内容了,我们要保留已有内容,并将它作为新列表的左子树。

插入左子树的Python代码:

def insertLeft(root,newBranch):t=root.pop(1)if len(t)>1:root.insert(1,[newBranch,t,[]])else:root.insert(1,[newBranch,[],[]])return root

插入右子树的Python代码:

def insertRight(root,newBranch):t=root.pop(2)if len(t)>1:root.insert(2,[newBranch,[],t])else:root.insert(2,[newBranch,[],[]])return root

为了完整地创建树的函数集,我们编写一些访问函数,用于读写根节点与左右子树。

树的访问函数代码:

def getRootVal(root):return root[0]def setRootVal(root,newVal):root[0]=newValdef getLeftChild(root):return root[1]def getRightChild(root):return root[2]

2.2 节点与引用

树的第二种表示法是利用节点与引用。我们将定义一个类,其中有根节点和左右子树的属性。这种表示法遵循对象编程范式。

#BinaryTree类
class BinaryTree:def __init__(self,rootObj):self.key=rootObjself.leftChild=Noneself.rightChild=None#插入左子节点def insertLeft(self,newNode):if self.leftChild==None:self.leftChild=BinaryTree(newNode)else:t=BinaryTree(newNode)t.left=self.leftChildself.leftChild=t#插入右子节点def insertRight(self,newNode):if self.rightChild==None:self.rightChild=BinaryTree(newNode)else:t=BinaryTree(newNode)t.right=self.rightChildself.rightChild=t#二叉树的访问函数def getRightChild(self):return self.rightChilddef getLeftChild(self):return self.leftChilddef setRootVal(self,obj):self.key=objdef getRootVal(self):return self.key

http://www.yidumall.com/news/81516.html

相关文章:

  • 每日甘肃网官网关键词优化报价查询
  • 用模板做企业网站百度学术论文查重入口
  • 做pcr查基因序列的网站站长统计软件
  • 网站如何做防护网络培训
  • 设计构建网站今日新闻头条官网
  • 德清建设银行官方网站如何开展网络营销
  • 贵阳做网站开发科技有限公司推广软文平台
  • 百度竞价排名收费标准汕头网站建设优化
  • 个人做外贸接订单网站网站seo服务公司
  • 电商主图制作软件seo关键词排名优化哪家好
  • 物流网站怎么做的竞价托管外包哪家好
  • 威海建设局网站首页目录型搜索引擎有哪些
  • 荥阳网站制作如何优化搜索引擎的准确性
  • 推广小说赚钱平台seo的中文含义是什么
  • 谁有网站推荐一下好吗软文自动发布软件
  • 网站改版需求5月新冠病毒最新消息
  • 北京免费网站制作最新网域查询入口
  • 2019做网站图片用什么格式网络营销策略分析案例
  • 工伤做实的那个网站2024年新闻摘抄
  • 外包装设计网站seo网站编辑是做什么的
  • 关于网站建设领导分工关键词排名优化价格
  • 搭建网站服务器多少钱关键词搜索排名公司
  • 网站做的好赚钱吗大数据下的精准营销
  • 银川建网站那家好中国网站建设公司前十名
  • 天津个人网站建设优化百度涨
  • 沈阳网站推广优化公司哪家好磁力bt种子搜索
  • amaze ui做网站好吗seo的搜索排名影响因素有
  • 泉州建设网站开发百度热搜广告位多少钱
  • 静态网站生成朝阳seo推广
  • 北京哪家做网站优化怎样做seo搜索引擎优化