C语言关于删除的报告,二进制排序树节点的插入和删除实验设计报告(用C语言实现)...

0cb0fd2d263fcb13ea8572f5f0998be7.png

二进制分类树节点的插入和删除实验设计报告二进制分类树节点的插入和删除实验设计报告1程序功能描述: 程序功能描述: 使用二进制树的知识来构建二进制树排序. 遍历创建的排序的二叉树(第一顺序,中间顺序,后面顺序),插入,搜索,删除. 2主要数据结构说明: 主要数据结构说明: 如果二进制排序树不是空树,则与其他树相比,它具有以下特征: 1.左子节点始终小于父节点; 2.正确的子节点始终大于父节点. 该节点由一个用于存储信息的空间和两个指针组成. 3程序结构描述: 程序结构描述: 以C语言为工具,在主函数外定义二进制排序树的遍历(前序,中阶,后序),插入和删除函数,在主函数中调用功能,其中在功能中使用主Switch ... case ...结构来有选择地实现该功能. 4算法描述: 算法描述: 在二进制排序树中插入节点的算法: 在二进制排序树中插入节点的算法: 1如果已创建的二进制排序树中的节点数与要插入的数目相同,则存在无需插入; 2虽然(p)控制循环变量

f8c9a99a8e47b38907229242d3bdb87f.png

3根据第二步中确定的位置插入. 如果插入的数字小于F->数据,则执行F-> lchild = S;如果大于F->数据,则执行F-> rchild = S;建立二进制排序树: 建立二进制排序树: 通过调用插入函数T = InsertBST(T,k); while(k!= -1)控制循环并递归插入,直到生成二进制排序树为止. 二进制排序树遍历算法: 二进制排序树遍历算法: 1.预遍历: 首先输出根节点的信息;然后调用函数PreOrderTraverse(T-> lchild)递归输出左子树的信息;最后,调用函数PreOrderTraverse(T-> rchild),然后递归输出子树信息. 2.中阶遍历: 首先调用函数PreOrderTraverse(T-> lchild),递归输出左子树的信息;然后输出根节点的信息;最后调用函数PreOrderTraverse(T-> rchild),递归输出子树信息. 3.后遍历: 首先调用函数PreOrderTraverse(T-> lchild),递归输出左子树的信息;然后调用函数PreOrderTraverse(T-> rchild)c 二叉排序树,递归输出子树的信息,最后输出根节点Information.

051dee64676521878fe0369ee2b68aad.png

二进制排序树的删除算法: 二进制排序树的删除算法: 通过* f,* p,* q,* c;四个指针,首先搜索二进制排序树,使用f,q指针跟随Who p指针,通过q-> data = p-> data,对信息进行掩码和删除;然后使用指针c,通过语句f-> lchild = c and free(p)或f-> rchild = c and free(p),删除节点p,此时可以实现节点的删除. 5程序测试计划和测试结果描述: 程序测试计划和测试结果描述: 功能1: 遍历二叉树输入节点信息: 3 6 8 4 1 -1;第一次遍历31648中间遍历13468然后遍历14863屏幕快照如下: 功能2: 将节点插入原始二叉树中Insert 2插入后遍历如下: 预遍历: 312648中遍历: 123468后遍历: 214863屏幕快照如下: 功能3: 删除节点: 删除4删除后遍历结果如下: 一阶遍历: 31268中阶遍历: 12368二阶遍历: 21863截图如下如下所示: 功能0: 输入0显示: 退出. 屏幕截图如下:

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-185736-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值