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

网站描述标签赌求网站开发

网站描述标签,赌求网站开发,剪映导出的视频字幕有乱码,北京事务所网页设计文章目录1.二叉树的遍历1.1前序、中序以及后序遍历1.2代码测试1.3层序遍历1.4二叉树遍历习题2.节点个数以及高度2.1二叉树节点个数2.2叶子节点个树2.3第k层节点个数2.4树的高度1.二叉树的遍历 1.1前序、中序以及后序遍历 学习二叉树结构#xff0c;最简单的方式就是遍历。所… 文章目录1.二叉树的遍历1.1前序、中序以及后序遍历1.2代码测试1.3层序遍历1.4二叉树遍历习题2.节点个数以及高度2.1二叉树节点个数2.2叶子节点个树2.3第k层节点个数2.4树的高度1.二叉树的遍历 1.1前序、中序以及后序遍历 学习二叉树结构最简单的方式就是遍历。所谓二叉树遍历(Traversal)是按照某种特定的规则依次对二叉树中的节点进行相应的操作并且每个节点只操作一次。访问结点所做的操作依赖于具体的应用问题。 遍历是二叉树上最重要的运算之一也是二叉树上进行其它运算的基础。 按照规则二叉树的遍历有前序/中序/后序的递归结构遍历 前序遍历(Preorder Traversal 亦称先序遍历)——访问根结点的操作发生在遍历其左右子树之前。中序遍历(Inorder Traversal)——访问根结点的操作发生在遍历其左右子树之中间。后序遍历(Postorder Traversal)——访问根结点的操作发生在遍历其左右子树之后。 由于被访问的结点必是某子树的根所以N(Node、L(Left subtree和R(Right subtree又可解释为根、根的左子树和根的右子树。NLR、LNR和LRN分别又称为先根遍历、中根遍历和后根遍历 前序遍历 如上图同理 中序遍历 后序遍历 1.2代码测试 前序代码 void PreOrder(BTNode* root) {if (root NULL){printf(NULL-);return;//这里的return很重要我们需要回归到原来的函数接着执行下面的语句}printf(%d-, root-data);PreOrder(root-left);PreOrder(root-right); }这里printf(“%d-”, root-data);语句的摆放位置实际上就是前序中序后序的区别我们采用递归来解决这个问题当然这部分需要对函数栈帧的创建和销毁理解 #includestdio.h #includestdlib.h typedef int BTDataType; typedef struct BinaryTreeNode {BTDataType data;struct BinaryTreeNode* left;struct BinaryTreeNode* right; }BTNode; BTNode* BuyBTNode(BTDataType x) {BTNode* newnode (BTNode*)malloc(sizeof(BTNode));if (newnode NULL){perror(malloc fail);}newnode-data x;newnode-left newnode-right NULL;return newnode; } void PreOrder(BTNode* root) {if (root NULL){printf(NULL-);return;}printf(%d-, root-data);PreOrder(root-left);PreOrder(root-right); }int main() {BTNode* n1 BuyBTNode(1);BTNode* n2 BuyBTNode(2);BTNode* n3 BuyBTNode(3);BTNode* n4 BuyBTNode(4);BTNode* n5 BuyBTNode(5);BTNode* n6 BuyBTNode(6);n1-left n2;n1-right n4;n2-left n3;n4-left n5;n4-right n6;PreOrder(n1);}1.3层序遍历 层序遍历除了先序遍历、中序遍历、后序遍历外还可以对二叉树进行层序遍历。设二叉树的根节点所在层数为1层序遍历就是从所在二叉树的根节点出发首先访问第一层的树根节点然后从左到右访问第2层上的节点接着是第三层的节点以此类推自上而下自左至右逐层访问树的结点的过程就是层序遍历。 1.4二叉树遍历习题 1.某完全二叉树按层次输出同一层从左到右的序列为 ABCDEFGH 。该完全二叉树的前序序列为 A ABDHECFG B ABCDEFGH C HDBEAFCG D HDEBFGCA 2.二叉树的先序遍历和中序遍历如下先序遍历EFHIGJK;中序遍历HFIEJKG.则二叉树根结点为 A E B F C G D H 3.设一课二叉树的中序遍历序列badce后序遍历序列bdeca则二叉树前序遍历序列为____。 A adbce B decab C debac D abcde 4.某二叉树的后序遍历序列与中序遍历序列相同均为 ABCDEF 则按层次输出同一层从左到右的序列 为 A FEDCBA B CBAFED C DEFCBA D ABCDEF 2.节点个数以及高度 2.1二叉树节点个数 int BinaryTreeSize(BTNode* root) {if (root NULL){return;}int size 0;size;BinaryTreeSize(root-left);BinaryTreeSize(root-right);return size; }我们首先来看这段代码能成功计算出来吗 显然运行结果错误因为函数栈帧创建时每个size都不是加在一个size上所以实际上只有第一次的起了效果所以输出1 那我们修改size为静态变量 int BinaryTreeSize(BTNode* root) {if (root NULL){return;}static int size 0;size;BinaryTreeSize(root-left);BinaryTreeSize(root-right);return size; }显然第一次结果是正确的但是我们多运行几次发现size每次都会加6出现这种情况正因为他是静态变量只经历一次初始化所以这种方法也行不通 这是我们想到了全局变量 int size 0; int BinaryTreeSize(BTNode* root) {if (root NULL){return;}size;BinaryTreeSize(root-left);BinaryTreeSize(root-right);return size; } int main() {BTNode* n1 BuyBTNode(1);BTNode* n2 BuyBTNode(2);BTNode* n3 BuyBTNode(3);BTNode* n4 BuyBTNode(4);BTNode* n5 BuyBTNode(5);BTNode* n6 BuyBTNode(6);n1-left n2;n1-right n4;n2-left n3;n4-left n5;n4-right n6;PreOrder(n1);printf(\n);size 0;printf(size%d\n,BinaryTreeSize(n1));size 0;printf(size%d\n, BinaryTreeSize(n1));size 0;printf(size%d\n, BinaryTreeSize(n1)); }最优解 return root NULL ? 0 : BinaryTreeSize(root-left) BinaryTreeSize(root-right) 1;2.2叶子节点个树 int BinaryTreeLeafSize(BTNode* root) {if (root NULL){return 0;}if (root-left NULL root-right NULL){return 1;}return(BinaryTreeLeafSize(root-left) BinaryTreeLeafSize(root-right)); }2.3第k层节点个数 int BinaryTreeLevelKSize(BTNode* root, int k) {if (root NULL){return 0;}if (k 1){return 1;}return BinaryTreeLevelKSize(root-left, k - 1) BinaryTreeLevelKSize(root-right, k - 1); }2.4树的高度 int TreeHeight(BTNode* root) {if (root NULL){return 0;}int leftHeight TreeHeight(root-left);int RightHeight TreeHeight(root-right);return leftHeight RightHeight ? leftHeight 1 : RightHeight 1; }
http://www.w-s-a.com/news/192066/

相关文章:

  • 小说网站建设之前需求分析免费下载京东购物
  • 园林景观设计案例网站wordpress 文章内容页
  • 网站什么做才会更吸引客户楚雄网站开发rewlkj
  • 电商网站构建预算方案视频制作网站怎么做
  • 包装设计灵感网站ps软件下载电脑版多少钱
  • 手机网站图片做多大原网站开发新功能
  • 网站设计培训成都陕西网站建设公司哪有
  • expedia电子商务网站建设辽宁网站设计
  • 深圳网站建设网站运营绥芬河市建设局网站
  • 家政服务网站做推广有效果吗做图软件ps下载网站有哪些
  • 北京市建设教育协会网站flash网站制作单选框和复选框ui组件
  • 国外有没有做问卷调查的网站网站网页怎么做
  • 简单个人网站模板下载网站建设整体情况介绍
  • 网站建设做到哪些内容荆门网站建设电话咨询
  • 玉树网站建设公司双11主机 wordpress 2015
  • dw做网站背景图片设置汕头seo管理
  • 个人又什么办法做企业网站唐山哪里建轻轨和地铁
  • 手机网站404页面室内设计公司排名前100
  • 做民宿需要和多家网站合作吗创建软件的步骤
  • 网站导航栏设计要求辽宁省住房和城乡建设厅
  • 海外网站平台腾讯营销平台
  • 东道网站建设良品铺子网络营销案例
  • 免费企业查询软件优化模型
  • 兰亭集势的网站平台建设凡科网站免费版怎么做
  • 在网站做推广要钱吗网站根目录是哪个文件夹
  • 网站建设如何弄链接海外vps一键配置WordPress
  • 1个ip可以做几个网站吗动画制作可以自学吗
  • 顺德建设局网站如何搭建网站
  • 精品网站建设费用 干净磐石网络网页制作简单作业
  • 网站建设需要用软件群晖怎样做网站