求二叉树叶子节点的个数并输出.doc_第1页
求二叉树叶子节点的个数并输出.doc_第2页
求二叉树叶子节点的个数并输出.doc_第3页
求二叉树叶子节点的个数并输出.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

求二叉树叶子节点的个数并输出实验目的:设二叉树采用链式存储结构,试设计一个算法计算一颗给定二叉树中叶子结点的数目。实验类容与步骤:(1)建立一颗二叉树;(2)先序遍历输出该二叉树;(3)计算出该二叉树的叶子结点个数;(4)输出叶子结点个数;实验平台: Windows xp 操作系统,VC 6.0集成环境实验设计方案:(1)输入扩展先序遍历序列并建立对应的二叉树. 输入#表示输入的二叉树元素为空。输入回车键表示输入结束。(2)先序输出当前二叉树的叶子节点和叶子节点个数.源程序代码:#include#includetypedef struct Nodechar data;struct Node *LChild;struct Node *RChild;struct Node *Parent;BiNode,*BiTree;/函数声明void Print(BiTree *root);void Choose(int choice,BiTree *root);void ReadPreOrder(BiTree *root);void PrintPreOrder(BiTree root);void ReadPreOrder(BiTree *root);void PreOrder(BiTree root,int *count);/主函数int main()BiTree root; root=NULL;/初始化 无头结点system(color a);Print(&root);while(true) printf(Press enter to continue.); getchar(); getchar(); system(cls); Print(&root);return 0;void Print(BiTree *root)int choice;printf(-n);printf(1.输入扩展先序遍历序列并建立对应的二叉树.n);printf(2.打印当前的二叉树的扩展先序遍历序列.n);printf(3.先序输出当前二叉树的叶子节点和叶子节点个数.n);printf(4.按其它任意键退出.n);printf(-n);printf(请选择你要的操作:);scanf(%d,&choice);getchar();/此处getchar存储回车,避免对后面函数的影响!(很重要!)Choose(choice,root);void Choose(int choice,BiTree *root)int count=0;switch(choice)case 1: ReadPreOrder(root); break;case 2: PrintPreOrder(*root); printf(n); break;case 3: PreOrder(*root,&count); printf(n总共%d个叶子节点.n,count); break;default: exit(0);void ReadPreOrder(BiTree *root)/先序遍历二叉树,root为指向二叉树(或某一子树)根结点的指针char ch;ch=getchar();/使用getchar输入时必须谨记前面有没有多余的回车if(ch=#) (*root)=NULL;else (*root)=(BiNode *)malloc(sizeof(BiNode); (*root)-data=ch; ReadPreOrder(&(*root)-LChild); ReadPreOrder(&(*root)-RChild);void PrintPreOrder(BiTree root)if(root!=NULL) printf(%c,(root)-data); PrintPreOrder(root-LChild); PrintPreOrder(root-RChild);else printf(.);/统计并输出二叉树的叶子和叶子个数void PreOrder(BiTree root,int *count)if(root!=NULL) if(root-LChild=NULL & root-RChild=NULL) printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论