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

icp备案网站用不了广东seo推广软件

icp备案网站用不了,广东seo推广软件,做新媒体应该关注什么网站,微信怎么建小程序二叉树的结构定义#xff1a; typedef struct BiNode {TElemType data;struct BiNode *lchild;struct BiNode *rchild; }BiNode,*BiTree;这里包含的递归算法有#xff1a; 二叉树的先序创建#xff1b;二叉树的先序中序后序遍历#xff1b;二叉树的销毁算法#xff1b;双…二叉树的结构定义 typedef struct BiNode {TElemType data;struct BiNode *lchild;struct BiNode *rchild; }BiNode,*BiTree;这里包含的递归算法有 二叉树的先序创建二叉树的先序中序后序遍历二叉树的销毁算法双序遍历求结点的个数求结点值的和求树的深度求叶子结点的个数求单分支结点的个数交换结点的左右子树寻找最小值结点判断是否是相同的二叉树判断是否是平衡二叉树判断是对称二叉树二叉树的最小深度算法 查看之前的博文 二叉树的最小深度二叉树的层次遍历 查看之前的博文 二叉树的层次遍历 二叉树的层次遍历进阶二叉树的最长路径 查看之前的博文 二叉树的最长路径问题从叶子结点到根节点的全部路径 查看之前的博文 从叶子结点到根节点的全部路径 最底面有全部代码的合集 1 二叉树的先序创建 思路 和先序递归遍历差不多二叉树中每个结点的元素均为一个字符按先序遍历的顺序建立二叉链表。序列中元素为‘#’时表示该结点为空。 void CreateBiTree(BiTree T)//二叉树的先序创建 {TElemType ch;scanf(%c,ch);if(ch#)TNULL;else {T(BiNode*)malloc(sizeof(BiNode));if(!T)exit(-1);T-datach;CreateBiTree(T-lchild);CreateBiTree(T-rchild);} }2二叉树的先序中序后序遍历 思路 先序中序后序递归算法都类似 int preorderTraverse(BiTree T)//二叉树的先序递归遍历算法 {if(TNULL)return 0;else {printf(%c ,T-data);preorderTraverse(T-lchild);preorderTraverse(T-rchild);}} int InorderTraverse(BiTree T)//二叉树的中序递归遍历算法 {if(TNULL)return 0;else {InorderTraverse(T-lchild);printf(%c ,T-data);InorderTraverse(T-rchild);}}int PostorderTraverse(BiTree T)//二叉树的后序递归遍历算法 {if(TNULL)return 0;else {PostorderTraverse(T-lchild);PostorderTraverse(T-rchild);printf(%c ,T-data);}}3二叉树的销毁算法 思路 和后序递归算法类似 void DestroyBiTree(BiTree T)//二叉树的销毁算法 {if(TNULL)exit(-1);else{DestroyBiTree(T-lchild);DestroyBiTree(T-rchild);free(T);} }4双序遍历 思路和普通前序中序遍历类似 void double_preorderTraverse(BiTree T)//双序遍历 {if(T!NULL){printf(%c ,T-data);double_preorderTraverse(T-lchild);printf(%c ,T-data);double_preorderTraverse(T-rchild);} }5求结点的个数 思路仅一个if else int NodeCount(BiTree T)//求节点的个数 {if(TNULL)return 0;elsereturn 1NodeCount(T-lchild)NodeCount(T-rchild); }6求结点值的和 思路 和求结点个数一样的算法 int Sum(BiTree T)//求结点值的和 {if(TNULL)return 0;elsereturn T-dataSum(T-lchild)Sum(T-rchild); }7求树的深度 思路 树的深度是指树的最大深度根节点到最远叶子结点的层次 int max(int x,int y)//求两数的最大值 {if(xy)return x;elsereturn y; }int BiTree_height1(BiTree T)//求树的深度算法1 {if(TNULL)return 0;elsereturn 1max(BiTree_height1(T-lchild),BiTree_height1(T-rchild));} int BiTree_height2(BiTree T)//求树的深度算法2 {int l_height,r_height;if(TNULL)return 0;else{l_heightBiTree_height2(T-lchild);r_heightBiTree_height2(T-rchild);return (l_heightr_height)?(l_height1):(r_height1);}}8求叶子结点的个数 思路 若T为空则返回0 若T为叶子结点则返回1 若为非叶子结点则返回左子树叶子结点数右子树叶子结点数 int leafCount(BiTree T)//求叶子结点的个数 {if(TNULL)return 0;if(T-lchildNULLT-rchildNULL)return 1;else{return leafCount(T-lchild)leafCount(T-rchild);}} 9求单分支结点的个数 思路 int DegreeOne(BiTree T) {if(NULL T)return 0;if(NULL T-lchild NULL T-rchild)//为叶子结点 return 0;if(NULL ! T-lchild NULL ! T-rchild)//为双分支结点 return DegreeOne(T-lchild) DegreeOne(T-rchild);//此时为单分支结点 return 1 DegreeOne(T-lchild) DegreeOne(T-rchild);} int DegreeOne1(BiTree T)//求单分支节点的个数 算法2 {int lnum, rnum, n;if(T NULL)return 0;else{if((T-lchild NULL T-rchild ! NULL) ||(T-lchild ! NULL T-rchild NULL))n 1; //为单分支结点elsen 0; //其他结点lnum DegreeOne1(T-lchild); //递归求左子树中单分支结点数rnum DegreeOne1(T-rchild); //递归求右子树中单分支结点数return (lnum rnum n);}}10交换结点的左右子树 另一个单独的问题的博文 数据结构——二叉树交换左右子树 代码 void Exchange_lchild_rchild(BiTree T)//½»»»×óÓÒº¢×Ó½áµã {if(T!NULL) if(T-lchild!NULL||T-rchild!NULL){BiTree temp;tempT-lchild;T-lchildT-rchild;T-rchildtemp;Exchange_lchild_rchild(T-lchild);Exchange_lchild_rchild(T-rchild);}} 11寻找最小值结点 代码 void Findminnode(BiTree T,char min)//ѰÕÒ×îСֵ½áµã {if(T!NULL){if(T-datamin){minT-data;}Findminnode(T-lchild,min);Findminnode(T-rchild,min);}12判断是否是相同的二叉树 思路 1判断这两棵树是否都空如果都空则是相同的树如果有一棵树不空另一棵树为空则不是相同的树 2这两棵树都不空判断这个节点对应的值相等吗 3若这两个节点的值相等递归同时判断这两棵树的左子树右子树。 status BiTree_is_same(BiTree T,BiTree S)//ÊÇ·ñÊÇÏàͬµÄ¶þ²æÊ÷ {if(TNULLSNULL)return 1;if(TNULL||SNULL)return 0;if(T-data!S-data)return 0;return(BiTree_is_same(T-lchild,S-lchild)BiTree_is_same(T-rchild,S-rchild)); }13判断是否是平衡二叉树 思路 1如果这颗树为空则返回1 2此时这棵树不为空判断该节点的左右子树的高度差的绝对值|左子树的高度—右子树的高度|1,如果大于1则返回0 3此时该节点的左右子树的高度差1递归遍历该节点的左右子树。 int BiTree_height1(BiTree T)//ÇóÊ÷µÄÉî¶ÈËã·¨1 {if(TNULL)return 0;elsereturn 1max(BiTree_height1(T-lchild),BiTree_height1(T-rchild));} status BiTree_is_Balanced(BiTree T)//ÅжÏÊÇ·ñÊÇÆ½ºâ¶þ²æÊ÷ {if(TNULL)return 1;if(abs(BiTree_height1(T-lchild)-BiTree_height1(T-rchild))1)return 0;return BiTree_is_Balanced(T-lchild)BiTree_is_Balanced(T-rchild); }14判断是对称二叉树 思路 1用BiTree_symmetry(BiTree T)函数调用T的左右子树 2调用 BiTree_check(BiTree root1,BiTree root2)函数核实他的左右子树是否满足左右对称镜像如果左右子树都空则返回1若果仅有一棵树为空,则返回0若两棵树都不空则返回判断左右子树对应根节点的值是否相等递归调用BiTree_check(BiTree root1,BiTree root2)判断该节点的左右子树BiTree_check(root1-lchild,root2-rchild)BiTree_check(root1-rchild,root2-lchild) status BiTree_check(BiTree root1,BiTree root2) {if(root1NULLroot2NULL) return 1;if(root1NULL||root2NULL) return 0;return root1-dataroot2-dataBiTree_check(root1-lchild,root2-rchild)BiTree_check(root1-rchild,root2-lchild); }status BiTree_symmetry(BiTree T)// {return BiTree_check(T-lchild,T-rchild);} 全部代码可执行 #includestdio.h #includebits/stdc.h typedef char TElemType; typedef int status; typedef struct BiNode {TElemType data;struct BiNode *lchild;struct BiNode *rchild; }BiNode,*BiTree; void CreateBiTree(BiTree T)//¶þ²æÊ÷µÄÏÈÐò´´½¨ {TElemType ch;scanf(%c,ch);if(ch#)TNULL;else {T(BiNode*)malloc(sizeof(BiNode));if(!T)exit(-1);T-datach;CreateBiTree(T-lchild);CreateBiTree(T-rchild);} } void CreateBiTree2(BiTree T)//¶þ²æÊ÷µÄÖÐÐò´´½¨ {TElemType ch;scanf(%c,ch);if(ch#)TNULL;else {T(BiNode*)malloc(sizeof(BiNode));if(!T)exit(-1);CreateBiTree(T-lchild);T-datach;CreateBiTree(T-rchild);} } void DestroyBiTree(BiTree T)//¶þ²æÊ÷µÄÏú»ÙËã·¨ {if(TNULL)exit(-1);else{DestroyBiTree(T-lchild);DestroyBiTree(T-rchild);free(T);} }void double_preorderTraverse(BiTree T)//Ë«Ðò±éÀú {if(T!NULL){printf(%c ,T-data);double_preorderTraverse(T-lchild);printf(%c ,T-data);double_preorderTraverse(T-rchild);} }int preorderTraverse(BiTree T)//¶þ²æÊ÷µÄÏÈÐòµÝ¹é±éÀúËã·¨ {if(TNULL)return 0;else {printf(%c ,T-data);preorderTraverse(T-lchild);preorderTraverse(T-rchild);}} int InorderTraverse(BiTree T)//¶þ²æÊ÷µÄÖÐÐòµÝ¹é±éÀúËã·¨ {if(TNULL)return 0;else {InorderTraverse(T-lchild);printf(%c ,T-data);InorderTraverse(T-rchild);}}int PostorderTraverse(BiTree T)//¶þ²æÊ÷µÄºóÐòµÝ¹é±éÀúËã·¨ {if(TNULL)return 0;else {PostorderTraverse(T-lchild);PostorderTraverse(T-rchild);printf(%c ,T-data);}}int NodeCount(BiTree T)//Çó½ÚµãµÄ¸öÊý {if(TNULL)return 0;elsereturn 1NodeCount(T-lchild)NodeCount(T-rchild); }int Sum(BiTree T)//Çó½áµãÖµµÄºÍ {if(TNULL)return 0;elsereturn T-dataSum(T-lchild)Sum(T-rchild); }int max(int x,int y)//ÇóÁ½ÊýµÄ×î´óÖµ {if(xy)return x;elsereturn y; }int BiTree_height1(BiTree T)//ÇóÊ÷µÄÉî¶ÈËã·¨1 {if(TNULL)return 0;elsereturn 1max(BiTree_height1(T-lchild),BiTree_height1(T-rchild));} int BiTree_height2(BiTree T)//ÇóÊ÷µÄÉî¶ÈËã·¨2 {int l_height,r_height;if(TNULL)return 0;else{l_heightBiTree_height2(T-lchild);r_heightBiTree_height2(T-rchild);return 1max(l_height,r_height);}}int leafCount(BiTree T)//ÇóÒ¶×Ó½áµãµÄ¸öÊý {if(TNULL)return 0;if(T-lchildNULLT-rchildNULL)return 1;else{return leafCount(T-lchild)leafCount(T-rchild);}} void Exchange_lchild_rchild(BiTree T)//½»»»×óÓÒº¢×Ó½áµã {if(T!NULL) if(T-lchild!NULL||T-rchild!NULL){BiTree temp;tempT-lchild;T-lchildT-rchild;T-rchildtemp;Exchange_lchild_rchild(T-lchild);Exchange_lchild_rchild(T-rchild);}} void Findminnode(BiTree T,char min)//ѰÕÒ×îСֵ½áµã {if(T!NULL){if(T-datamin){minT-data;}Findminnode(T-lchild,min);Findminnode(T-rchild,min);}} int DegreeOne(BiTree T) {if(NULL T)return 0;if(NULL T-lchild NULL T-rchild)//ΪҶ×Ó½áµã return 0;if(NULL ! T-lchild NULL ! T-rchild)//Ϊ˫·ÖÖ§½áµã return DegreeOne(T-lchild) DegreeOne(T-rchild);//´ËʱΪµ¥·ÖÖ§½áµã return 1 DegreeOne(T-lchild) DegreeOne(T-rchild);} int DegreeOne1(BiTree T)//Çóµ¥·ÖÖ§½ÚµãµÄ¸öÊý Ëã·¨2 {int lnum, rnum, n;if(T NULL)return 0;else{if((T-lchild NULL T-rchild ! NULL) ||(T-lchild ! NULL T-rchild NULL))n 1; //Ϊµ¥·ÖÖ§½áµãelsen 0; //ÆäËû½áµãlnum DegreeOne1(T-lchild); //µÝ¹éÇó×ó×ÓÊ÷Öе¥·ÖÖ§½áµãÊýrnum DegreeOne1(T-rchild); //µÝ¹éÇóÓÒ×ÓÊ÷Öе¥·ÖÖ§½áµãÊýreturn (lnum rnum n);}}status BiTree_is_same(BiTree T,BiTree S)//ÊÇ·ñÊÇÏàͬµÄ¶þ²æÊ÷ {if(TNULLSNULL)return 1;if(TNULL||SNULL)return 0;if(T-data!S-data)return 0;return(BiTree_is_same(T-lchild,S-lchild)BiTree_is_same(T-rchild,S-rchild)); }status BiTree_is_Balanced(BiTree T)//ÅжÏÊÇ·ñÊÇÆ½ºâ¶þ²æÊ÷ {if(TNULL)return 1;if(abs(BiTree_height1(T-lchild)-BiTree_height1(T-rchild))1)return 0;return BiTree_is_Balanced(T-lchild)BiTree_is_Balanced(T-rchild); }status BiTree_check(BiTree root1,BiTree root2) {if(root1NULLroot2NULL) return 1;if(root1NULL||root2NULL) return 0;return root1-dataroot2-dataBiTree_check(root1-lchild,root2-rchild)BiTree_check(root1-rchild,root2-lchild); }status BiTree_symmetry(BiTree T)//¶Ô³Æ¶þ²æÊ÷ {return BiTree_check(T-lchild,T-rchild);} int main() { int x;int node_number,BiTree_height;BiTree T;char min;printf(´´½¨Ê÷ÊäÈëÊ÷TµÄÏÈÐòÐòÁÐ(ÆäÖÐʹÓÃ#´ú±í¿Õ½Úµã)\n);CreateBiTree(T);printf(---²Ëµ¥---\n); printf([1]:ÏÈÐò±éÀúËã·¨\n);printf([2]:ÖÐÐò±éÀúËã·¨\n);printf([3]:ºóÐò±éÀúËã·¨\n);printf([4]:Çó½áµã¸öÊýËã·¨\n);printf([5]:ÇóÊ÷µÄÉî¶ÈËã·¨\n);printf([6]:½»»»×óÓÒº¢×Ó½ÚµãËã·¨\n);printf([7]:ѰÕÒ×îСֵ½áµãËã·¨\n); printf([8]:Çóµ¥·ÖÖ§½ÚµãµÄ¸öÊýËã·¨\n);printf([9]ÅжÏÊÇ·ñÊÇÏàͬµÄÊ÷\n);printf([10]:ÅжÏÊÇ·ñÊÇÆ½ºâ¶þ²æÊ÷\n); printf([11]:ÅжÏÊÇ·ñÊǶԳƶþ²æÊ÷\n); while(1){int n; printf(\nÊäÈëÒª½øÐеIJÙ×÷:);scanf(%d,n);switch(n){case 1:preorderTraverse(T);break;case 2:InorderTraverse(T);break;case 3:PostorderTraverse(T);break;case 4:node_numberNodeCount(T);printf(%d,node_number);break;case 5:BiTree_heightBiTree_height1(T);printf(%d,BiTree_height);break;case 6:Exchange_lchild_rchild(T);break;case 7:minT-data;Findminnode(T,min);//±ØÐëÔÚµ÷Óú¯Êýǰ¸³³õÖµ printf(%c,min);break;case 8:printf(Çóµ¥·ÖÖ§½áµã¸öÊý£º);printf(%d,DegreeOne1(T)); break;case 9:if(BiTree_is_same(T,T)) printf(ÊÇÏàͬµÄÊ÷\n);else printf(²»ÊÇÏàͬµÄÊ÷\n);break; case 10:if(BiTree_is_Balanced(T)) printf(ÊÇÆ½ºâ¶þ²æÊ÷\n);else printf(²»ÊÇÆ½ºâ¶þ²æÊ÷\n);break; case 11:if(BiTree_symmetry(T)) printf(ÊǶԳƶþ²æÊ÷\n);else printf(²»ÊǶԳƶþ²æÊ÷\n);break;}} }
http://www.pierceye.com/news/774973/

相关文章:

  • jsp网站设计用以前用过的域名做网站
  • 魔兽世界做宏网站家具设计与工程就业前景
  • 网站案例介绍平面设计网址推荐
  • 网站上的验证码怎么做简书 导入 wordpress
  • 想把公司的外部网站替换金戈枸橼酸西地那非片
  • 个人可以做社区网站淄博网站文章优化
  • 晋中建设集团网站windows图标wordpress
  • 如何创建商业网站为网站网站做代理被判缓刑
  • 个人备案做运营网站wordpress公众号源码
  • 营销网站服务器郑州金水区
  • 陕煤化建设集团铜川分公司网站大冶建设局网站
  • 网站如何制作django企业网站开发实例
  • 免费网站建设软件大全平面设计与网页设计
  • 建设网站 怀疑对方传销 网站制作 缓刑网站ip如何做跳转
  • 公司网站建设要求书网页怎么弄到桌面快捷方式
  • 做网站 公司 个体学校网站建设板块分析
  • 如何让百度更新网站收录wordpress图片处理类
  • 镜像网站能否做google排名企业做网站需要注意什么
  • 网站设计公司名称dz网站恢复数据库
  • 展示网站和营销网站的区别舆情分析师
  • 做网站用那一种语言最好网站推广指的是什么
  • 有哪些网站可以学做糕点的专业做网站建设公司怎么样
  • 广州网站排名怎么优化androidapp开发教程
  • 永顺网站建设网站建设免费建站
  • 建立一个网站需要多少钱?jquery网站后台模板
  • PHP网站开发工程师招聘营销型网站主机
  • 百度招聘 网站开发书画网站免费源码
  • 4s店网站建设贺贵江seo教程
  • 做网站的公司一般怎么培训销售wordpress引用php
  • 自己怎样做网站平台网页设计做网站首页