首页 > 范文大全 > 正文

二叉树结构的文本模式显示

开篇:润墨网以专业的文秘视角,为您筛选了一篇二叉树结构的文本模式显示范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:二叉树在数据结构的教学中是非常重要的一类非线性结构,在上机编程和调试的过程中如何快速有效直观地显示这类非线性结构直接影响着教与学的效率,为此提出了一种文本模式的二叉树结构显示方法;该方法利用’_’、’/’和’\’三种特殊字符把子结点和父结点连接起来,使用队列对二叉树进行层序输出。在队列中采用空指针NULL代表空结点,同时用一个新结点end表示每一层的结束。该方法不仅适用于顺序存储的二叉树也适用于链式存储的二叉树,进行适当修改也可顺利地显示3阶B_树,因此可以作为数据结构教与学的有效手段之一。

关键词:二叉树;显示;文本模式

中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)16-3856-05

Text-mode Display of Binary Tree

JIANG Shun-liang, REN Yang

(Department of Computer Science and Technology, School of Information Engineering, Nanchang University, Nanchang 330031, China) Abstract: Binary tree is very important nonlinear structure in the data structures, how to display the binary tree effectively is essential to the related teaching and learning. A text-mode display method for binary tree was proposed, three characters (‘_’,‘/’and‘\’) were used to connect the parent and children nodes, queue technique was used to export binary tree by level-order, the empty node is represented by the NULL pointer and one new node is created to denote the end of one level in the level-order queue. The method is usable for both of sequence and linked binary trees, is applicable for display of 3-order B_tree by small modification, and is valuable to improve the teaching and learning.

Key words: Binary tree; display; Text-mode

数据结构是计算机科学与技术学科的16门核心课程之一[1],它对培养学生的两项专业能力:算法设计与分析的能力、程序设计能力[1]是非常重要的。数据结构也是全国硕士研究生入学统一考试计算机科学与技术学科综合专业的重要部分,其分数占总分的近三分之一。二叉树是数据结构中非常基础的非线性结构,对学好其它非线性结构具有重要的作用。非线性结构的算法与程序设计对于初学者来说是比较抽象的,即使象二叉树这样简单与基础的非线性结构,要掌握它也不是一件容易的事;学好它离不开动脑与动手,上机编程和调试相关算法非常重要,但是学生不易直观检查计算结果,这会影响调试的效率。

检查二叉树结果可以通过输出二叉树的遍历结果来进行,尤其是层序遍历[2];也可以在集成开发环境中通过监视(Watch)追踪左右子树,这不直观也非常繁琐。图形显示二叉树是比较直观和形象的[3],因此在教学中可以采用图形显示[4-5],比如图1;但是它的缺点也很明显,要求学生掌握一定的图形编程,而不少学生在学习数据结构的时候图形编程基础比较弱,因此教与学往往是在命令行的方式下进行输出,即通过printf或cout进行输出(C/C++语言),所以采用图形输出进行数据结构教学有一定的局限性。

采用该文方法把搜索的结果用特定字符’*’标识出来如图6。哈夫曼树是一种最优二叉树,带权的初始结点都在叶子上,构造过程中新建的结点都是分支结点;哈夫曼树可以采用顺序存储[6],该文方法略作修改即可应用于顺序存储,用特殊字符’@’标识分支结点显示的哈夫曼树如图7。平衡二叉树是一种优化后的二叉排序树,它的左右子树的高度不超过1,每个结点有一个平衡因子表示左右子树的平衡情况,可以用更为直观的符号表示平衡因子,即’>’代表1、’=’代表0和’

二叉树结构的文本模式显示方法使用了’_’、’/’和’\’三种字符来显示二叉树的结构,由于不涉及图形操作,该方法有很强的可移植性,不论TC环境或者VS环境,该文提供的代码都可直接使用。该文的方法也可方便地改为独立的函数,也方便其它的语言实现。该方法方便了树型数据结构程序的调试,不仅可以应用于各种二叉树,也可应用于三叉树,比如3阶B_树。由于直观地显示了二叉树的结构,因而可以提高教与学的效率。同时,算法也使用了队列,对学生巩固已学过的数据结构知识非常有帮助。

[1]中国计算机科学与技术学科教程2002研究组.中国计算机科学与技术学科教程2002[M].北京:清华大学出版社,2002.

[2]叶品菊,吴斌,胡远望,等.直观显示二叉树结构的算法[J].江南大学学报:自然科学版,2008,7(1):60-63.

[3]刘福君,李华,王玉森,等.基于二叉树的故障树画树算法研究[J].计算机技术与发展, 2006,16(7):117-118.

[4]刘惠敏,董毅.动态模拟二叉树的建立[J].黄冈职业技术学院学报,2004,6(1):75-76.

[5]白雪峰,李沛.二叉排序树的建立及对其中序遍历的动态模拟[J].电脑知识与技术,2005,12(8):84-86.

[6]任燕.数据结构C++语言描述[M].北京:清华大学出版社,2010.