好文档 - 专业文书写作范文服务资料分享网站

数据结构实验报告(四)

天下 分享 时间: 加入收藏 我要投稿 点赞

《数据结构》实验报告

班级:

学号:

姓名:

实验四 二叉树的基本操作

实验环境:Visual C++ 实验目的:

1、掌握二叉树的二叉链式存储结构; 2、掌握二叉树的建立,遍历等操作。

实验内容:

通过完全前序序列创建一棵二叉树,完成如下功能: 1) 输出二叉树的前序遍历序列; 2) 输出二叉树的中序遍历序列; 3) 输出二叉树的后序遍历序列; 4) 统计二叉树的结点总数; 5) 统计二叉树中叶子结点的个数;

实验提示:

//二叉树的二叉链式存储表示 typedef char TElemType; typedef struct BiTNode{ TElemType data;

struct BiTNode *lchild,*rchild; }BiTNode,*BiTree;

一、程序源代码

#include

#include

#define MAXSIZE 30

typedef char ElemType;

typedef struct TNode *BiTree;

struct TNode {

char data;

BiTree lchild;

BiTree rchild; };

int IsEmpty_BiTree(BiTree *T) {

if(*T == NULL)

return 1;

else

return 0;

}

void Create_BiTree(BiTree *T){

char ch;

ch = getchar();

//当输入的是\时,认为该子树为空

if(ch == '#')

*T = NULL;

//创建树结点

else{

*T = (BiTree)malloc(sizeof(struct TNode));

(*T)->data = ch; //生成树结点

//生成左子树

Create_BiTree(&(*T)->lchild);

//生成右子树

Create_BiTree(&(*T)->rchild);

} }

void TraverseBiTree(BiTree T) { //先序遍历

if(T == NULL)

return;

else {

printf(\

TraverseBiTree(T->lchild);

TraverseBiTree(T->rchild);

} }

void InOrderBiTree(BiTree T) {

if(NULL == T)

return;

else {

InOrderBiTree(T->lchild);

printf(\

InOrderBiTree(T->rchild);

} }

void PostOrderBiTree(BiTree T) {

if(NULL == T)

return;

else {

//中序遍历

数据结构实验报告(四)

《数据结构》实验报告班级:学号:姓名:实验四二叉树的基本操作实验环境:VisualC++实验
推荐度:
点击下载文档文档为doc格式
0lo8868ago5s23r4b01m9s4tl8lgrm00e4g
领取福利

微信扫码领取福利

微信扫码分享