中国矿业大学徐海学院计算机系《软件认知实践》报告姓 名: 鹏 学 号: 22100479 姓 名: 陆坤 学 号: 22100470 专 业:计算机科学与技术 设计题目:二叉排序树的实现指导老师: 锦程 2024 年 12 月目 录第 1 章 题目概述 1第 1.1 节 题目要求 1第 1.2 节 主要难点 1第 2 章 系统流程图 2第 3 章 数据结构和算法 3第 4 章 核心代码分析......................................9第 5 章 复杂度分析.......................................10第 1 章 题目概述用顺序和二叉链表作存储结构实现二叉排序树。 第 1.1 节 题目要求1) 以回车('\n')为输入完毕标志,输入数列 L,生成一棵二叉排序树 T;2) 对二叉排序树 T 作中序遍历,输出结果;3) 输入元素 x,查找二叉排序树 T,若存在含 x 的结点,则删除该结点,并作中序遍历(执行操作 2);否则输出信息“无 x”;第 1.2 节 主要难点1: 使用树的动态顺序存储结构,先初始化一个数组。2:建立一个插入函数,通过调用该函数边查找边插入建立二叉排序树。3:q.data=(int *)malloc(N*sizeof(int)); /*重新初始化一个数组 Q*/第 2 章 系统流程图+Main() 开始BST T; int crew[N]; int i=0; int k=0; int num,ch=0,j; printf("请输入一串数字,以数字-1 完毕:");scanf("%d",&num);if(num= =-1)YNcrew[i]=num; i++; T=create(crew,i); printf("\n\n********************** 操作选项 *************************");printf("\n* *"); printf("\n* 0: 退出 *"); printf("\n* 1: 中序遍历二叉排序树 *"); printf("\n* 2: 删除元素 *"); printf("\n* 3: 推断是否为平衡树 *");printf("\n*******************************************************");中序遍历二叉树While(num!=-1)printf(" 输入完成 \n");Nbreak;下一页NNNN删除元素推断是否为平衡二叉树break;break;Exit(0);输出:输入的字符无效break;YYYY完毕Case(0)Case(1)Case(2)Case(3)Default:Switch(ch)第 3 章 数据结构和算法#include#include#define N 100 /*二叉树结点的最大数目*/typedef struct { int *data; /*数组首址指针*/ int lenth; /*数组长度*/}BST;insert(BST T,int i,int key) /*插入函数*/{ if(i<1||i>N) printf("失败!"); /*插入不成功*/ if(T.data[i]==0) T.data[i]=key; /*被插...