当前位置:文档之家› 二叉排序树的实现_课程设计报告

二叉排序树的实现_课程设计报告

中北大学
数据结构
课程设计说明书
2011年12月20日
1.设计任务概述:
功能描述:
(1)以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T;
(2)对二叉排序树T作中序遍历,输出结果;
(3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”。

2.本设计所采用的数据结构
二叉树及二叉链表
3.功能模块详细设计
详细设计思想
建立二叉排序树采用边查找边插入的方式。

查找函数采用递归的方式进行查找。

如果查找到相等的则插入其左子树。

然后利用插入函数将该元素插入原树。

对二叉树进行中序遍历采用递归函数的方式。

在根结点不为空的情况下,先访问左子树,再访问根结点,最后访问右子树。

删除结点函数,采用边查找边删除的方式。

如果没有查找到,进行提示;如果查找到结点则将其左子树最右边的节点的数据传给它,然后删除其左子树最右边的节点。

核心代码
(1)主菜单模块
int main(){
LNode root=NULL;
int Num,a,x;
printf("\n\n
*******************************\n");
printf(" ************主菜单*************\n");
printf(" *1:进行中序排列*\n");
printf(" *2:进行删除操作
*\n");
printf(" *3:退出*\n");
printf("
*******************************\n");
printf("请输入要进行操作的数字以0结束:\n");
运行结果
(3)中序遍历模块
void view(LNode p){
程设计心得、存在问题及解决方法
通过这次课程设计,我进一步的懂得了二叉链表的建立方法,进一步的了解了二叉排序树的构造方法。

对函数的构造以及调用有了更进一步的掌握,让我在调试程序是有了一定的经验。

多考虑算法的可行性。

在遇到问题是认真考虑。

同时让我意识到数据结构在编程中的重要作用。

算法的优越性对程序的重要性。

让我在调试程序是有了一定的经验。

相关主题