逻辑算法大赛辅导--二叉树的建立及相关操作

zengyiCSTC 2004-02-16 11:28:21
二叉树的建立及其相关的操作是数据结构学科当中相当重要的一个内容,也是应用非常广泛的一种经典结构,本文力图通过五个大模块向大家分别介绍:建立二叉树,三序遍历二叉树,给出叶子结点,显示二叉树,销毁二叉树。的全过程。希望大家对这部分只是有一个深入的理解。
我们在文章中设计实现了一个抽象数据类型二叉树的演示程序。对程序的功能定义是这样的:
设计实现ADT Bitree 的 create, traverse, insert, delete 等基本操作;
设计可操作的应用界面:
待加工的数据为字符型,在过程中键入;
需要建立的子程序算法如下:
[1]建立一棵二叉树;
[2]给出三序遍历树后的结点序列( 字符数据 ) ;
[3]给出叶子结点( 字符数据 );
[4]显示二叉树;
[5]清理空间;
[6]可执行的主程序中要给出可选的菜单:

1.Create Binary Tree from keyboard;
2.Create Binary Tree from file;
3.Write tree data to file;
4.PreOrder travel;
5.InOrder travel
6.PostOrder travel
7.Show leaves
8.Display the structure of the binary tree
9.Clear binary tree data
10.Exit

问题设计和总体设计
本题共分五个大模块:建立二叉树,三序遍历二叉树,给出叶子结点,显示二叉树,销毁二叉树。由菜单决定执行哪个功能模块。
详细设计
1、从键盘建立二叉树
采用先序遍历的顺序进行创建,并输入数据,由键盘输入每个节点的数据,当输入为“#”时,当前操作的节点指针为NULL,采用先左子树后右子树的顺序函数根据输入数据的形式,生成相应的二叉树结构。
2、从文件建立二叉树
3、三序遍历二叉树
分别采用先序、中序、后序遍历二叉树。
4、出叶子节点
给出叶子节点,可以在任何一种遍历的算法中进行。如果某节点的左孩子和右孩子均不存在,那么此节点就是此二叉树的叶子节点。
5、显示二叉树
本程序采用图形模式形象地输出二叉树的空间结构,采用层次遍历的算法分层访问每一个节点,并计算相应的屏幕坐标,将二叉树居中显示。
6、空二叉树
采用后序遍历实现二叉树的清空操作。
测试数据
输入或文件中的数据序列为: ABC##D##E#F##
先序遍历: ABCDEF
中序遍历: CBDAEF
后序遍历: CDBFEA
显示叶子节点: CDF
图形模式下显示二叉树的空间结构如下图

程序简要使用说明
使用二叉树时必须先建立二叉树,建立的方式可以是直接输入,可以是从文件读取, 但必须先建立,清空后如果要继续操作也要重新建立二叉树,否则程序将会提示错误,用户只需按照提示做即可,数据的输入格式请参照测试数据。
...全文
299 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复

还没有回复,快来抢沙发~

相关推荐
发帖
其他
创建于2009-10-09

225

社区成员

其他产品/厂家
申请成为版主
帖子事件
创建了帖子
2004-02-16 11:28
社区公告
暂无公告