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

驻马店做网站推广做网站必须租服务器吗

驻马店做网站推广,做网站必须租服务器吗,网站被清空了怎么办,主体负责人电话修改 网站备案一,引言 二叉树作为一种基础数据结构,这里仅仅对概念性知识进行简略概括,主要进行讲解二叉树的前中后序遍历,节点个数,叶子节点个数,二叉树高度。 二,概念及性质 结点的度:一个结点…

一,引言

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

二,概念及性质

结点的度:一个结点含有的子树的个数称为该结点的度; 如上图: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/606299.html

相关文章:

  • 那些开店的网站是自己做的吗wordpress 网站主题
  • 电子商务网站建设的方法天津造价信息网
  • 网站设计怎么做链接怎么申请自己的网站
  • 网站建设零基础能够做物理题的网站
  • 绍兴做团购的网站学做网站视频
  • 学做网站需要懂什么网站有订单了有声音提醒怎么做
  • 跨境电商在哪些网站上面做网站备案是先做网站还是做完了备案
  • 怎么知道网站开发语言枣庄网站设计
  • lamp网站开发黄金组合下载北湖区网站建设哪个好
  • 手机商城网站如何手机app应用制作
  • 淄博培训网站建设wordpress 问答类主题
  • 创意网站交互网站公司设计公司
  • 好用的网站网站开发视频教程迅雷下载
  • 用dw建立网站诺诚软件开发
  • 开花店做网站网站seo优化建议
  • 免费生成网站的app运城做网站
  • 有经验的盐城网站开发有口碑的中山网站建设
  • 乐平市建设局网站计算机网络 网站开发与设计
  • 网站点击量怎么查网络诚信 网站应怎么做
  • 网站关键词设置电商店铺装修
  • 网站建设需要些什么设备免费seo网站推荐一下软件
  • 菏泽做网站的网站开发+职位描述
  • 做服装行业网站怎么每天更新内容网站开发工具选用原则
  • 集约化网站建设项目组网站建设方案书
  • 怎么找网站做推广开发网站通过第三方微信认证登录开发费用
  • phpcms网站title二维码短链接生成器
  • 自适应网站平台网站首页做30个关键词
  • 没有内容的网站应该怎么做ps做的网站
  • 外贸如何建立网站微信开发者平台怎么注销
  • 诸城网站设计网站开发项目报价单