二叉树的应用
一、实验目的
1、使学生熟练掌握二叉树的逻辑结构和存储结构。
2、熟练掌握二叉树的各种遍历算法。
3.熟悉二叉树的应用
二、实验内容
本次实验提供2个题目,学生可以根据自己的情况任选一个。 题目一:二叉树的应用
[问题描述]
建立一棵二叉树,试编程实现二叉树的如下基本操作:
1. 按先序序列构造一棵二叉链表表示的二叉树T;
2. 求二叉树的深度,叶子结点数目;
3. 将二叉树每个结点的左右子树交换位置,输出交换后的二叉树的中序遍历。
[基本要求]
从键盘接受输入(先序),以二叉链表作为存储结构,建立二叉树(以先序来建立),
[测试数据]
如输入:ABCффDEфGффFффф(其中ф表示空格字符) 则输出结果为
深度:5
叶子结点:3
中序遍历:AFDGEBC
三、算法设计
1.按先序创建二叉树
2.求二叉树的深度
3.求叶子节点的数目
4.交换二叉树的左右子树输出中序遍历结果
四、实验报告要求
1、实验报告要按照实验报告格式规范书写。
2、实验上要写出多批测试数据的运行结果。
3、结合运行结果,对程序进行分析。
五、附录(源代码)
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#define OVERFLOW -2
typedef struct BiTNode
{
char data; struct BiTNode *lchild,*rchild; }BiNode,*BiTree;
void createTree(BiTree &T) //创建二叉树 {
char ch; scanf("%c",&ch); if(ch=='0') { T=(BiTree)malloc(sizeof(BiNode)); if(!T) exit(0); T->data=ch; T=NULL; else
…… …… 余下全文