2022年求树的节点数和叶子C代码 .pdf

上传人:H****o 文档编号:39711903 上传时间:2022-09-07 格式:PDF 页数:9 大小:44.99KB
返回 下载 相关 举报
2022年求树的节点数和叶子C代码 .pdf_第1页
第1页 / 共9页
2022年求树的节点数和叶子C代码 .pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2022年求树的节点数和叶子C代码 .pdf》由会员分享,可在线阅读,更多相关《2022年求树的节点数和叶子C代码 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、/求节点数#include#include#include#define TRUE 1#define FLASE 0#define OK 1#define ERROR 0#define INFEASIBLE-1#define OVERFLOW -2 typedef int Status;typedef int TElemType;typedef struct BiTNode TElemType data;struct BiTNode*lchild,*rchild;BiTNode,*BiTree;Status CreateBiTree(BiTree&T)TElemType e;名师资料总结-精品

2、资料欢迎下载-名师精心整理-第 1 页,共 9 页 -scanf(%d,&e);if(e=0)T=NULL;else T=(BiTree)malloc(sizeof(BiTNode);if(!T)exit(OVERFLOW);T-data=e;CreateBiTree(T-lchild);CreateBiTree(T-rchild);return OK;int BTNodeCount(BiTree T)int m=0,n=0;if(T=NULL)return 0;else m=BTNodeCount(T-lchild);名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 9 页 -n

3、=BTNodeCount(T-rchild);return(m+n+1);void main()BiTree T;printf(请输入二叉树中节点的值(int型),0 表示空树:n);CreateBiTree(T);printf(该树的节点数是%dn,BTNodeCount(T);/求叶子数#include#include#include#define TRUE 1#define FLASE 0#define OK 1#define ERROR 0#define INFEASIBLE-1 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 9 页 -#define OVERFLOW

4、-2 typedef int Status;typedef int TElemType;typedef struct BiTNode TElemType data;struct BiTNode*lchild,*rchild;BiTNode,*BiTree;Status CreateBiTree(BiTree&T)TElemType e;scanf(%d,&e);if(e=0)T=NULL;else T=(BiTree)malloc(sizeof(BiTNode);if(!T)exit(OVERFLOW);T-data=e;CreateBiTree(T-lchild);名师资料总结-精品资料欢迎

5、下载-名师精心整理-第 4 页,共 9 页 -CreateBiTree(T-rchild);return OK;int LeftBiTree(BiTree T)int m,n;if(!T)return 0;else if(!T-lchild&!T-rchild)return 1;else m=LeftBiTree(T-lchild);n=LeftBiTree(T-rchild);return(m+n);void main()名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 9 页 -BiTree T;printf(请输入树中节点的值(int型),0 表示空树:n);CreateBi

6、Tree(T);printf(该二叉树的树叶是%dn,LeftBiTree(T);如果需要两个程序合并,自己修改一下就可以了#include#include typedef char ElemType;#includeBiTree.h typedef BiTreeNode*DataType;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 9 页 -#includeLinQueue.h void LeverOrder(BiTreeNode*root)/层序遍历的函数,形参是一个二叉树的头指针,如果该二叉树有头结点则为其头结点的左子树 int m=0,n=0;/m为叶子节点的计数器,

7、n 为总节点 BiTreeNode*q;LQueue head;/创建一个队列,用以存放二叉树的结点地址 QueueInitiate(&head);/初始化队列 QueueAppend(&head,root);/二叉树第一个有用结点入队列 while(QueueNotEmpty(head)QueueDelete(&head,&q);printf(%c ,q-data);n+;/输出一个结点就进行一次计数,总计为总结点数目 if(q-leftChild!=NULL)QueueAppend(&head,q-leftChild);if(q-rightChild!=NULL)QueueAppend(&

8、head,q-rightChild);if(q-leftChild=NULL&q-rightChild=NULL)m+;/叶 子名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 9 页 -节点为没有子树的结点,利用这个特点进行筛选 printf(n);printf(总结点数目为:%dn,n);printf(叶子节点数目为:%dn,m);void main()BiTreeNode*root,*p,*pp;Initiate(&root);p=InsertLeftNode(root,A);p=InsertLeftNode(p,B);p=InsertLeftNode(p,D);p=InsertRightNode(p,G);p=InsertRightNode(root-leftChild,C);pp=p;InsertLeftNode(p,E);InsertRightNode(pp,F);名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 9 页 -LeverOrder(root-leftChild);Destroy(&root);名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 9 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁