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

单位网站建设实施方案宁波建网站费用

单位网站建设实施方案,宁波建网站费用,旅游电子商务网站建设的流程,开发工具在哪里目录 一,树的概念及结构 1,树的定义 2,树结点的分类及关系 3,树的表示 二,二叉树的概念及结构 1,二叉树的定义 2,特殊的二叉树 3,二叉树的性质 4,二叉树的存储结构 1&…

目录

一,树的概念及结构

        1,树的定义

        2,树结点的分类及关系

        3,树的表示

二,二叉树的概念及结构

        1,二叉树的定义

        2,特殊的二叉树

        3,二叉树的性质

        4,二叉树的存储结构

1,顺序存储

2,链式储存


一,树的概念及结构

        1,树的定义

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

树(Tree)是n(n>=0)个结点的有限集;

n=0时称为空树;

在任意一颗非空树中:

1,有且仅有一个特定的称为根(Root)的结点;

2,当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,......,Tm,其中每一个集合本身又是一棵树,并且称为跟的子树(SubTree);

如下图所示:

注意:树形结构中,子树之间不能有交集,否则就不是树形结构

        2,树结点的分类及关系

结点的度:一个结点含有的子树的个数称为该结点的度; 如上图:A的为4

叶结点或终端结点:度为0的结点称为叶结点; 如上图:K,G,L,M,N...等结点为叶结点

非终端结点或分支结点:度不为0的结点; 如上图:B,C,E...等结点为分支结点

双亲结点或父结点:若一个结点含有子结点,则这个结点称为其子结点的父结点; 如上图:A是B的父节点

孩子结点或子结点:一个结点含有的子树的根结点称为该结点的子结点; 如上图:B是A的孩子结点

兄弟结点:具有相同父结点的结点互称为兄弟结点; 如上图:B、C是兄弟结点

树的度:一棵树中,最大的结点的度称为树的度; 如上图:树的度为4

结点的层次:从根开始定义起,根为第1层,根的子结点为第2层,以此类推

树的高度或深度:树中结点的最大层次; 如上图:树的高度为4

堂兄弟结点:双亲在同一层的结点互为堂兄弟;如上图:H、I互为堂兄弟结点

结点的祖先:从根到该结点所经分支上的所有结点;如上图:A是所有结点的祖先,C是G,H的祖先

子孙:以某结点为根的子树中任一结点都称为该结点的子孙。如上图:所有结点都是A的子孙,G,H是C的子孙

森林:由m(m>0)棵互不相交的树的集合称为森林

        3,树的表示

        树结构相对线性表就比较复杂了,要存储表示起来就比较麻烦了,既然保存值域,也要保存结点和结点之间的关系,实际中树有很多种表示方式如:双亲表示法孩子表示法孩子双亲表示法以及孩子兄弟表示法等。我们这里就简单的了解其中最常用的孩子兄弟表示法

typedef int DataType;
struct Node
{struct Node* _firstChild1; // 第一个孩子结点struct Node* _pNextBrother; // 指向其下一个兄弟结点DataType _data; // 结点中的数据域
};

图解:

二,二叉树的概念及结构

        1,二叉树的定义

二叉树(Binary Tree)是n(n>=0) 个结点的有限集合;

该集合或者为空集(称为空二叉树);

或者由一个根结点和两颗互不相交的,分别为根结点的左子树和右子树的二叉树组成;

 图示:

由上图可以看出:

1,二叉树不存在度大于2的结点

2,二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树

二叉树具有以下五种基本形态:

        2,特殊的二叉树

1,斜树

所有的结点都只有左子树的二叉树叫左斜树;

所有的结点都只有右子树的二叉树叫右斜树;

斜树图示:

2,满二叉树

一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是 说,如果一个二叉树的层数为K,且结点总数是2^k-1 ,则它就是满二叉树

3,完全二叉树

完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为K 的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对 应时称之为完全二叉树。 要注意的是满二叉树是一种特殊的完全二叉树

        3,二叉树的性质

1,若规定根结点的层数为1,则一棵非空二叉树的第i层上最多有2^(i-1)个结点

2,若规定根结点的层数为1,则深度为h的二叉树的最大结点数是 2^h-1

3,对任何一棵二叉树, 如果度为0其叶结点个数为n0 , 度为2的分支结点个数为n1 ,则有 n0=n1+1

4,若规定根结点的层数为1,具有n个结点的满二叉树的深度,h=log2(n+1) 

5,对于具有n个结点的完全二叉树,如果按照从上至下从左至右的数组顺序对所有结点从0开始编号,则对于序号为i的结点有:

1,若i>0,i位置节点的双亲序号:(i-1)/2;i=0,i为根节点编号,无双亲节点

2,若2i+1<n,左孩子序号:2i+1

3,若2i+1>n,右孩子序号:2i+2

        

        4,二叉树的存储结构

二叉树一般可以使用两种结构存储,一种顺序结构,一种链式结构

1,顺序存储

顺序结构存储就是使用数组来存储,一般使用数组只适合表示完全二叉树,因为不是完全二叉树会有空间的浪费。而现实中使用中只有堆才会使用数组来存储

二叉树顺序存储在物理上是一个数组,在逻辑上是一颗二叉树。

2,链式储存

二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系;

通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址;

链式结构又分为二叉链和三叉链

typedef int BTDataType;
// 二叉链
struct BinaryTreeNode
{struct BinTreeNode* _pLeft; // 指向当前节点左孩子struct BinTreeNode* _pRight; // 指向当前节点右孩子BTDataType _data; // 当前节点值域
}// 三叉链
struct BinaryTreeNode
{struct BinTreeNode* _pParent; // 指向当前节点的双亲struct BinTreeNode* _pLeft; // 指向当前节点左孩子struct BinTreeNode* _pRight; // 指向当前节点右孩子BTDataType _data; // 当前节点值域
};

第一阶段就到这里了,带大家先了解一下树和二叉树的原理;

后面博主会陆续更新;

如有不足之处欢迎来补充交流!

完结。。。


http://www.yayakq.cn/news/298262/

相关文章:

  • ftp 网站做设计拍摄的网站平台
  • 义乌网站建设微信开发海南省澄迈住房和城乡建设厅网站
  • 淮安市建设工程质量监督站网站网站忘记密码功能
  • 武乡网站建设注册logo商标设计要求
  • 在哪里建网站许昌网络推广外包
  • php技术应用于中小企业网站开发wordpress快速翻译
  • 2013 中国网站建设市场 pdf网站与数据库
  • 泰安北京网站建设专业制作网站用哪些软件
  • 事业单位网站登录模板wordpress图片翻页
  • 安徽做手机网站做电商网站运营
  • 大良网站智能推广如何做外贸 用国内空间做网站
  • 福州做网站建设公司晋城网站建设科技有限公司
  • 百度网站推广价格免费邯郸网站建设
  • 长沙网站制作公司网站建设选什么服务器
  • wordpress网站导航模板网站备案信息可以更改吗
  • 相册管理网站模板下载失败html跳转另一个网页的代码
  • 源代码管理网站东莞公认的第一富人区
  • 12306 网站谁做的做网站的回扣
  • 济南建站优书网注册
  • 网站建设找什么工作室如何用php制作网页
  • 湛江个人网站建设将html嵌入wordpress
  • php网站开发实例教程 课件wordpress钉钉登录
  • 图列说明网站开发的流程wordpress自定义登录框插件
  • 一般网站要多大空间电脑系统重装wordpress
  • 最容易做的网站类型试玩网站怎么做
  • 网站宣传工作清明节ppt模板免费下载
  • 个人网站页面模板html沂seo网站推广
  • 上海网站备案核验点精品网站建设费用 在线磐石网络
  • 企业建设网站有什么好处wordpress怎么解密密码
  • 网站怎么装模版营销型网站建设一般多少钱