二叉排序树节点的插入和删除实验设计报告1程序功能描述
用二叉树的所学知识建立二叉排序树对已建立的排序二叉树进行遍历先序中序后序插入查找删除。
2主要数据结构描述
二叉排序树若不为空树那么相比于其他的树它具有一下特性
1.、左儿子永远小于双亲结点 2、右儿子永远大于双亲结点。
其中结点由一个存放信息的空间和两个指针构成。
3程序结构描述
以C语言为工具在主函数外部定义二叉排序树的遍历先序中序后序插入删除函数在主函数中调用其中主函数中用switch…case…结构有选择性的进行功能的实现。
4算法描述
二叉排序树插入结点的算法
1若建立的二叉排序树中已有与欲插入的数相同的结点则无须插入
2以whi le(p)控制循环变量若欲插入的数比根结点小的话执行 P=P->lchi ld;若大于p->data则执行P=P->rchi ld; 直至p为空。此过程中一直用指针F记录前一步p的位置。
3在第2歩确定了的位置的基础上进行插入若与插入的数小于F->data则执行F->lchi ld=S;若大于F->data则执行 F->rchi ld=S;
二叉排序树的建立
通过对插入函数的调用即 T=InsertBST(T,k) 以whi le(k!=-1)控制循环递归的进行插入直至生成二叉排序树。
二叉排序树的遍历算法
1、 先序遍历先输出根结点的信息然后调用函数P reO rde rTra ve rs e(T->l c h i l d) 递归的输出左子树的信息最后调用函数P re O rde rTra ve rs e(T->rc h i l d) 递归输出有子树的信息。
2、 中序遍历先调用函数PreOrderTraverse(T->lchi ld) 递归的输出左子树的信息然后输出根结点的信息最后调用函数P reO rde rTra ve rs e(T->rc h i l d) 递归输出有子树的信息。
3、 后序遍历先调用函数PreOrderTraverse(T->lchi ld) 递归的输出左子树的信息然后调用函数P re O rde rTra ve rs e(T->rc h i l d) 递归输出有子树的信息最后输出根结点的信息。
二叉排序树的删除算法
通过*f,*p,*q,*c;四个指针先对二叉排序树查找用f,q指针跟谁p指针通过q->data=p->data掩盖与删除的信息;再借助指针c,通过语句 f->lchi ld=c
和free(p)或f->rchi ld=c和free(p) 删除结点p此时结点的删除得以实现。5程序测试方案与测试结果描述
功能1 :二叉树的遍历
输入节点信息 3 6 8 4 1 -1
先序遍历31648
中序遍历13468
后序遍历14863
截图如下
功能2 向原有的二叉树中插入一个结点
插入2
插入后遍历如下
先序遍历
中序遍历
后序遍历
截图如下
功能3删除一个结点
删除4
删除后遍历结果如下
先序遍历 31268
中序遍历 12368后序遍历 21863截图如下
功能0:
输入0
显示:退出。
截图如下
今天看到一个网友从原来虚拟主机准备转移至服务器管理自己的业务。这里问到虚拟主机和服务器到底有什么不同,需要用到哪些工具软件。那准备在下班之间稍微摸鱼一下整理我们服务器安装环境和运维管理中常见需要用到的软件工具推荐。第一、系统镜像软件一般来说,我们云服务器或者独立服务器都是有自带镜像的。我们只需要选择镜像安装就可以,比如有 Windows和Linux。但是有些时候我们可能需要自定义镜像的高级玩法,这...
前天,还有在"Hostodo商家提供两款大流量美国VPS主机 可选拉斯维加斯和迈阿密"文章中提到有提供两款流量较大的套餐,这里今天看到有发布四款庆祝独立日的七月份的活动,最低年付VPS主机13.99美元,如果有需要年付便宜VPS主机的可以选择商家。目前,Hostodo机房可选拉斯维加斯和迈阿密两个数据中心,且都是基于KVM虚拟+NVMe整列,年付送DirectAdmin授权,需要发工单申请。(如何...
LOCVPS发来了针对XEN架构VPS的促销方案,其中美国洛杉矶机房7折,其余日本/新加坡/中国香港等机房全部8折,优惠后日本/新加坡机房XEN VPS月付仅29.6元起。这是成立较久的一家国人VPS服务商,目前提供美国洛杉矶(MC/C3)、和中国香港(邦联、沙田电信、大埔)、日本(东京、大阪)、新加坡、德国和荷兰等机房VPS主机,基于XEN或者KVM虚拟架构,均选择国内访问线路不错的机房,适合建...