1 / 9
文档名称:

二叉树建立及遍历.doc

格式:doc   大小:36KB   页数:9
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

二叉树建立及遍历.doc

上传人:sanshenglu2 2021/1/11 文件大小:36 KB

下载得到文件列表

二叉树建立及遍历.doc

文档介绍

文档介绍:实验内容
要求采用二叉链表作为存储结构,完成二叉树的建立,前序、中序和后序遍历的操作,求所有叶子及结点总数的操作等。具体实现要求:分别利用前序遍历、中序遍历、后序遍历所建二叉树.
二、实验环境
操作系统和C语言系统
源程序及注释:
#include "stdio.h”
#include "stdlib.h" 
typedef struct tree
{  
  char data;  
  struct tree *lchild;
 struct tree *rchild;
}*Ptree;
Ptree createTree()  //树的建立
 {
char ch; 
Ptree t;
 ch=getchar(); //输入二叉树数据
if(ch==' ')  //判断二叉树是否为空
t=NULL;
   else

  t=(Ptree)malloc(sizeof(Ptree)); //二叉树的生成
     t—〉data=ch;  
     t->lchild=createTree();
       t->rchild=createTree();
  }
  return t; 
}  

void preOrder(Ptree t) //先序遍历
{  
  if(t)
  { 
   printf(”%c",t—>data); 
 preOrder(t->lchild);
      preOrder(t-〉rchild);
   }
}

void intOrder(Ptree t) //中序遍历

    if(t)  
{  
     intOrder(t-〉lchild); 
   printf("%c”,t—〉data);
intOrder(t—〉rchild); 
   }


void postOrder(Ptree t) //后序遍历 

   if(t)
  {  
     postOrder(t-〉lchild);
  postOrder(t—〉rchild); 
ﻩ    printf(”%c”,t—>data);
     }
}
 int getleaf(Ptree t) //求叶子数
 {
 int a,b;
  if(t==NULL)  //判断是否为空
    return 0;
  else 
  {  
      if(t—>lchild==NULL&&t—〉rchild==NULL)  //只有一个根节点
   return