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

织梦移动网站模板免费下载网站管理助手ftp连接不上

织梦移动网站模板免费下载,网站管理助手ftp连接不上,网络营销方式一般有,乐至县建设局网站一,引言 二叉树作为一种基础数据结构,这里仅仅对概念性知识进行简略概括,主要进行讲解二叉树的前中后序遍历,节点个数,叶子节点个数,二叉树高度。 二,概念及性质 结点的度:一个结点…

一,引言

二叉树作为一种基础数据结构,这里仅仅对概念性知识进行简略概括,主要进行讲解二叉树的前中后序遍历,节点个数,叶子节点个数,二叉树高度。

二,概念及性质

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

叶结点或终端结点:度为0的结点称为叶结点; 如上图:B、C、H、I...等结点为叶结点

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

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

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

这里主要几个常用的进行点一下。

还有一些相对重要的性质:

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

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

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

三,前中后序遍历

1,前序遍历:


前序遍历:根-->左子树-->右子树,注意是每一个子树都进行这个顺序。

 首先是(1)作为整个二叉树的根,先进行遍历之后是(2),(2)作为左子树的根,遍历左子树(4),(4)作为2左子树的根,左子树为空,右子树(6)。此时2的左子树结束,走右子树(5)。

此时1的左子树走完,走右子树(3)。

总结:1-->2-->4-->6-->5-->3 。

展开图:

代码实现:

void BinaryTreePrevOrder(BTNode* root)
{if (root == NULL){return;}printf("%d", root->_data);BinaryTreePrevOrder(root->_left);BinaryTreePrevOrder(root->_right);}

2,中序遍历

中序遍历:左子树-->根-->右子树,每个子树都按这个方式遍历。


 首先1作为根,走左子树,2作为新的根继续找左子树4,4作为根左子树为空继续走根节点(4),右子树(6),2作为根节点左子树走完,走根(2)进而右子树(5),1的左子树走完继续走根(1),右子树(3)。

总结:4-->6-->2-->5-->1-->3.

展开图:

 

每一个框架一个递归循环。

代码实现:

void BinaryTreeInOrder(BTNode* root)
{if (root == NULL){return;}BinaryTreePrevOrder(root->_left);printf("%d", root->_data);BinaryTreePrevOrder(root->_right);}

 3,后序遍历:


后序遍历:左子树-->右子树-->根,每一个子树 都按照这个顺序进行递归。

首先1作为根,左子树2,2作为根进行走左子树4,4同样作为根走左子树,左子树为空,走右子树(6),进而走根(4),此时2的左子树完毕,走右子树(5),进而走根(2),1的左子树完毕,走右子树(3),最后走根(1)。

总结:6-->4-->5-->2-->3-->1。

代码实现:
 

void BinaryTreePostOrder(BTNode* root)
{if (root == NULL){return;}BinaryTreePrevOrder(root->_left);BinaryTreePrevOrder(root->_right);printf("%d", root->_data);
}

四,节点个数

求该二叉树节点的个数也就是说有多少个节点。

 

 代码思路:

每次经过一个节点数量加一,总节点个数 = 左节点个数 + 右节点个数。

代码实现:
 

int BinaryTreeSize(BTNode* root)
{if (root == NULL){return 0;}return BinaryTreeSize(root->_left) + BinaryTreeSize(root->_right) + 1;
}

五,叶子节点个数

 

代码思路:
当该节点的左孩子和右孩子同时为空时,则该节点为叶子节点。将整个二叉树遍历一遍满足加一,不满足就继续走递归。

int BinaryTreeLeafSize(BTNode* root)
{if (root == NULL){return 0;}if (root->_left == NULL && root->_right == NULL){return 1;}return BinaryTreeSize(root->_left) + BinaryTreeSize(root->_right);
}

六,二叉树高度

分支最长的为二叉树高度,总的来说就是返回左子树和右子树的较大值。

代码实现:

int  BinaryTreeTall(BTNode* root)
{if (root == NULL){return 0;}int a = BinaryTreeTall(root->_left);int b = BinaryTreeTall(root->_right);return a > b ? BinaryTreeTall(root->_left) + 1 : BinaryTreeTall(root->_right) + 1;
}

这个相对来说比较复杂,通过变量记录左孩子和右孩子的大小,之后比较这个的大小,大的数据进行加1操作。进而进行比较,依次往复。以这个为例子画一些递归展开图。

如图以下面二叉树为例:

 

没有地方了,右子树和左子树的方法相同,在递归的学习中不理解就可以画递归展开图。

七,总结:

在递归的学习中只要不懂就画递归展开图,很有助于对递归的理解。 

http://www.dtcms.com/wzjs/549562.html

相关文章:

  • iis7 静态网站彩页设计软件
  • 个人网站如何做淘宝客seo页面优化公司
  • 做市级网站需要什么意思ps和dw怎么做网站
  • 汤阴有没有做网站的公司免费搭建个人网站的3种实用方法
  • 网页设计公司建网站网站设计中国商业网
  • 事业单位网站建设方案策划书在线免费设计logo
  • 网站设计计划wordpress awesome图标
  • 张掖网站制作网站开发定制模板网站建设
  • 有没有做网站兼职宣城做w网站的公司
  • 个人网站免费申请注册南京汽车 企业 网站建设
  • 公司建站有哪些优势南宁网站建设价格
  • 建设部网站注册规划师查询网络推广培训视频
  • 三河网站seo湖南衡阳网站建设
  • 优秀品牌企业网站建设案例wordpress 自适应门户
  • .net开发微信网站流程呼和浩特哪里做网站
  • 网站建设 需求模板基础建设的网站有哪些
  • 电影网站制作教程模板免费下载网站
  • 济南互联网选号网站申请自助建站
  • 创建一个网站一般步骤有哪些深圳网站建设 网站制作 网站设计【迅美】旧版
  • 河南网站排名优化关于网站建设的标语
  • 服装设计资源网站wordpress中文文章排版插件
  • 火车头wordpress建站群wordpress主题极简cho
  • 空间设计网站推荐百度助手手机下载
  • 做初中数学题的网站网站怎么看好与不好
  • ps网站建设设计小型电子商务网站网页设计
  • 厦门网站注册与网页设计公司建设英文网站的申请怎么写
  • 怎样注册自己的网站wordpress tags地址
  • 哪些网站可以做代理商凡科如何开通网站建设
  • 家谱网站源码下载公司网站找不到了
  • 我想做网站服务器选用什么工业果蔬机械加工网