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

校园网站系统建设需求编程软件scratch免费下载

校园网站系统建设需求,编程软件scratch免费下载,应用软件下载大全,杭州建站平台摘自#xff1a;数据结构——计算节点个数和二叉树高度#xff08;C语言版#xff09; 作者#xff1a;正弦定理 发布时间#xff1a;2020-12-12 23:27:09 网址#xff1a;https://blog.csdn.net/chinesekobe/article/details/111086664 数据结构——计算节点个数、二叉树… 摘自数据结构——计算节点个数和二叉树高度C语言版 作者正弦定理 发布时间2020-12-12 23:27:09 网址https://blog.csdn.net/chinesekobe/article/details/111086664 数据结构——计算节点个数、二叉树高度 一、计算各种节点1计算总节点2计算单分支节点3计算双分支节点 二、计算二叉树高度代码实现 一、计算各种节点 二叉树结构体如下 // 二叉树结构体 typedef struct TreeLink{int Data;struct TreeLink *LChild;struct TreeLink *RChild; }T_LINK,*TLINK; 1234567 1计算总节点 让根节点指针开始进行二叉树的遍历遍历树节点中不为NULL下及存在节点遍历次数相加之和 根节点 及为总节点 // 计算二叉树总节点 int Calc_AllJieDian(TLINK p) {if(p NULL) // 二叉树为空树 或者 该节点下没有子树{return 0;}return 1Calc_AllJieDian(p-LChild)Calc_AllJieDian(p-RChild); // 遍历该节点的左右子树再加上根节点 } 12345678910 2计算单分支节点 遍历二叉树途中只记录遍历树节点中遇到左边子树存在右边子树为NULL 或者 右边子树存在左边子树为NULL这种节点才让递归 返回值 1依次累加 // 计算单分支节点 int Signal_Node(TLINK p) {if(pNULL){return 0;// 当前节点左右子树其中一个为NULL单支点数1 }else if((p-LChildNULLp-RChild!NULL)||(p-LChild!NULLp-RChildNULL)){return Signal_Node(p-LChild)Signal_Node(p-RChild)1;}else{// 双分支都存在继续向下遍历 return Signal_Node(p-LChild)Signal_Node(p-RChild);} } 1234567891011121314151617 3计算双分支节点 计算双分支节点思路 和 计算单支点相反 为 遍历 二叉树 只记录 节点指针指向的节点中 左右子树都存在 的时候递归返回值1累加最后返回 就是双分支节点的个数 // 计算双分支节点 int Calc_DoubleNode(TLINK p) { if(pNULL){return 0;}else if(p-LChild!NULLp-RChild!NULL){ // 当节点左右子树都存在时双分支数1return Calc_DoubleNode(p-LChild)Calc_DoubleNode(p-RChild)1; // 继续遍历左右子树 }else{ // 否则只继续向下遍历左右子树 return Calc_DoubleNode(p-LChild)Calc_DoubleNode(p-RChild);} } 123456789101112131415161718 总代码: #includestdio.h #includestdlib.h// 二叉树结构体 typedef struct TreeLink{int Data;struct TreeLink *LChild;struct TreeLink *RChild; }T_LINK,*TLINK; // 创建二叉树 TLINK Create_TreeLink() {TLINK T;int data;int temp;scanf(%d,data);temp getchar(); // 吸收scanf带来的回车 if(data -1){ // 输入-1表示该节点下左树或者右树下不存数据,返回到上一级节点 return NULL; }else{T (TLINK)malloc(sizeof(T_LINK)); // 每个节点开辟空间 T-Data data;printf(请输入%d节点下左节点数据: ,data);T-LChild Create_TreeLink();printf(请输入%d节点下右节点数据: ,data);T-RChild Create_TreeLink();return T;}}// 计算二叉树总节点 int Calc_AllJieDian(TLINK p) {if(p NULL){return 0;}return 1Calc_AllJieDian(p-LChild)Calc_AllJieDian(p-RChild); // 遍历该节点的左右子树再加上根节点 } // 计算双分支节点 int Calc_DoubleNode(TLINK p) { if(pNULL){return 0;}else if(p-LChild!NULLp-RChild!NULL){ // 当节点左右子树都存在时双分支数1return Calc_DoubleNode(p-LChild)Calc_DoubleNode(p-RChild)1; // 继续遍历左右子树 }else{ // 否则只继续向下遍历左右子树 return Calc_DoubleNode(p-LChild)Calc_DoubleNode(p-RChild);} } // 计算单分支节点 int Signal_Node(TLINK p) {if(pNULL){return 0;// 当前节点左右子树其中一个为NULL单支点数1 }else if((p-LChildNULLp-RChild!NULL)||(p-LChild!NULLp-RChildNULL)){return Signal_Node(p-LChild)Signal_Node(p-RChild)1;}else{// 双分支都存在继续向下遍历 return Signal_Node(p-LChild)Signal_Node(p-RChild);} } int main() {TLINK T; // 创建二叉树指针 printf(输入第一个节点:\n);T Create_TreeLink();int count Calc_AllJieDian(T);int SignalNode Signal_Node(T); int DoubleNode Calc_DoubleNode(T);printf(总节点个数为: %d\n,count); printf(叶子节点个数为: %d\n,count-1);printf(单支节点个数为: %d\n,SignalNode);printf(双支节点个数为: %d\n,DoubleNode); }123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 运行结果 二、计算二叉树高度 思路 递归遍历二叉树除去根节点下比较节点左右子树的遍历次数大小最后大的结果 加上 根节点 1 就是二叉树的高度 代码实现 // 计算二叉树的高度 int Calc_Hight(TLINK p) {int left ; // 计算左子树 节点 int right; // 计算右子树节点int Max; if(p ! NULL){left Calc_Hight(p-LChild); // 遍历该节点的左子树right Calc_Hight(p-RChild); // 遍历该节点的右子树Max leftright?left:right; // 比较左右子树的高度return Max1; }else{return 0;} } 12345678910111213141516171819202122
http://www.huolong8.cn/news/189991/

相关文章:

  • 网站安全建设seo交流论坛
  • 做网络推广网站有哪些论医院网站的建设
  • 个人网站开发实例jsp网站开发教学
  • 重庆网站维护制作怎么做一个微信小程序
  • 检测网站是否正常国家大宗商品交易平台
  • 外贸建站推广网易企业邮箱收件服务器主机名
  • 三站合一的网站怎么做教程做网站建设的怎么寻找客户
  • 养殖公司网站厦门广告公司电话
  • 台州网站制作推广做网站创意
  • 电子商务网站建设思维导图如何提高网站百度权重
  • 广告推销网站技术支持 祥云平台 英文网站
  • wordpress上传网站建设一个同城购物网站
  • 设计师导航网站大全wordpress适合做大型网站吗
  • 苏州外贸网站建设公司价格企业为什么要做短视频营销
  • 网站设计常见问题亦庄公司做网站
  • 中英双语网站怎么做WordPress圆形图片
  • 衍艺 网站建设深圳wap网站建设
  • 如何做起一个网站推广二级网站免费建
  • 网站开发加22760047如何做网站卖家具
  • 网站建设研究意义网站虚拟空间
  • 好用的手机网站主页中国建设银行培训网站
  • 团购网站模板wordpress数据库优化技巧
  • 没有工信部备案的网站是骗子吗建设网站建设投标网1249中官网词
  • 有什么做图文长图的网站吗wordpress异步加载插件
  • 诚信快捷小企业网站建设东阳海天建设集团网站
  • 门户网站怎么建设需要多长时间平顶山车祸最新新闻事件
  • 粤嵌培训机构官网百度seo软件
  • 做电影网站违法卓智网络科技有限公司
  • 江苏网站备案需要多久天辰建设网站
  • 广东工业设计公司株洲网站关键词优化