数据结构实验报告二叉树的应用一、实验目的实现二叉排序树的应用。二、实验内容(问题)设计一个程序,实现二叉排序树的应用。基本要求:(1)从空树开始,通过插入,建立一棵二叉排序树;(2)检验所建立的二叉树是否是二叉排序树;(3)实现二叉排序树的删除。三、算法描述 (给出自然语言描述的算法)1.建立一棵空树,把数据元素插入树中;2.检验这棵树是不是二叉排序树;3.输入一个关键字,删除该数据元素。四、详细设计(画流程图)建立空树该 树 中 是 否 有要 插 入 的 数 据元素不插入插入输入要删除元素的关键字判断 i 是否大于13 (i=0;i<13;i++ )检验该树是不是二叉排序树该数据元素在二叉排序树中是否存在删除数据元素删除失败插入并检测数据元素是否是否结束否是否是五、程序代码#include "stdio.h"#include "stdlib.h"#define EQ(a,b) ((a)==(b))#define LT(a,b) ((a)<(b))#define FALSE 0#define TRUE 1typedef int Status;typedef struct ElemType{int key;char name[15];}ElemType;typedef struct BiTNode{ElemType data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;FILE *fp;Status SearchBST(BiTree T,int key,BiTree f,BiTree &p);Status InsertBST(BiTree &T,ElemType e);Status PreOrderTraverse(BiTree T,Status(*visit)(ElemType));Status Show(ElemType e);Status InspectBST(BiTree T);Status DeleteBST(BiTree &T,int key);Status Delete(BiTree &p);main(){BiTree T=NULL; ElemType e; int i,key;if((fp=fopen("data.txt","read"))==NULL){ printf("Can't open file!\n"); exit(0);}for(i=0;i<16;i++){fscanf(fp,"%d%s\n",&e.key,e.name);InsertBST(T,e);}fclose(fp);printf("二叉排序树建立成功。\n");if(InspectBST(T))printf("此二叉树是二叉排序树。\n");else return FALSE;printf("先序遍历序列是:\n");if(PreOrderTraverse(T,Show))printf("\n");for(i=0;i<3;i++){printf("输入要删除数据元素的关键字:"); scanf("%d",&key);if(DeleteBST(T,key)){ printf("删除该数据元素后的先序遍历是:\n"); PreOrderTraverse(T,Show); printf("删除成功。\n");}else printf("二叉树中没有此数据元素,删除失败。\n");}return TRUE;}Status SearchBST(BiTree T,int key,BiTree f,BiTree &p){if(!T){ //查找不成功p=f; return FA...