c语言实现二叉树的代码.doc

c语言实现二叉树的代码.doc

ID:55550269

大小:29.00 KB

页数:10页

时间:2020-05-16

c语言实现二叉树的代码.doc_第1页
c语言实现二叉树的代码.doc_第2页
c语言实现二叉树的代码.doc_第3页
c语言实现二叉树的代码.doc_第4页
c语言实现二叉树的代码.doc_第5页
资源描述:

《c语言实现二叉树的代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1,2两问的程序代码如下:#include "stdio.h" #include"malloc.h"  typedef struct BiTNode {  char data;  struct BiTNode *lchild,*rchild;  }BiTNode,*BiTree;  BiTree Create(BiTree T) {  char ch;  ch=getchar();  if(ch=='#')  T=NULL;  else {  T=(BiTNode *)malloc(sizeof(BiTNode)); T->data=ch; T->lchild=Create(T

2、->lchild);  T->rchild=Create(T->rchild);  }  return T;  }  int node(BiTree T) {  int sum1=0,a,b;  if(T)  {   if(T!=NULL)sum1++;   a=node(T->lchild);          sum1+=a;          b=node(T->rchild);          sum1+=b;   }  return sum1;  } int mnode(BiTree T) {  int sum2=0,e,f;  if(T)  {  if((T->l

3、child!=NULL)&&(T->rchild!=NULL))   sum2++;  e=mnode(T->lchild);      sum2+=e;      f=mnode(T->rchild);      sum2+=f;   }     return sum2; } void Preorder(BiTree T) {  if(T) {  printf("%c",T->data);  Preorder(T->lchild);  Preorder(T->rchild);  }  } int Sumleaf(BiTree T) {  int sum=0,m,n;  if(

4、T) {  if((!T->lchild)&&(!T->rchild))  sum++;  m=Sumleaf(T->lchild);  sum+=m;  n=Sumleaf(T->rchild);  sum+=n;  }  return sum;}  void zhongxu(BiTree T) {  if(T) {  zhongxu(T->lchild);  printf("%c",T->data);  zhongxu(T->rchild);  }  }  void houxu(BiTree T) {  if(T) {  houxu(T->lchild);  houxu(T

5、->rchild);  printf("%c",T->data);  } }  main() {  BiTree T;  int sum,sum1,sum3; printf("请输入字符串:");  T=Create(T); printf("前序遍历:"); Preorder(T); printf("");  printf("中序遍历:"); zhongxu(T); printf("");   printf("后序遍历:");  houxu(T);  printf("");  sum=Sumleaf(T); printf("树叶数为:");  p

6、rintf("%d",sum); printf(""); printf("树结点数为:");  sum1=node(T); printf(""); printf("%d",sum1); printf(""); printf("树满结点数为:");sum3=mnode(T); printf("%d",sum3); printf(""); }3,4两问的程序代码如下:#includeJK#include#defineNULL0#defineMAX100/*定义二叉树*/typedefstructbitnode{chard

7、ata;structbitnode*lchild,*rchild;}bitnode;/*定义栈元素的类型*/typedefstructnode{structbitnode*p;}node;/*定义栈*/typedefstructstack{node*base;node*top;intsize;}stack;/*全局变量*/structbitnode*T;stack*s;inti=0,a;/*a为二叉树的结点总数;i为访问结点时的计数*//*构建空栈*/stack*initstack(){s-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。