汇编二叉树的遍历.docVIP

  • 14
  • 0
  • 约1.14万字
  • 约 16页
  • 2017-05-27 发布于河南
  • 举报
汇编二叉树的遍历

软件背景介绍 树的遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算的基础。 从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行三个操作: ⑴访问结点本身(N), ⑵遍历该结点的左子树(L), ⑶遍历该结点的右子树(R)。 所以二叉树的遍历也包括三种:先序遍历,中序遍历,和后序遍历。 图1:程序显示结果 核心算法思想 二叉树的存储: 在内存中为数组binary分配一个大小为63(0,0,0)的存储空间,所有数组元素初始化为0,用来存放二叉树。每三个连续的数组地址存放一个节点:第一个地址存放节点的值;第二个地址存放有无左孩子的信息,如果有则将其置为1,否则为0;第三个地址存放有无右孩子的信息,如果有则将其置为1,否则为0。将binary的首址偏移赋给si,cx初始化为0用来计数,用回车代表输入的为空,即没有输入。按先根存储的方式来存二叉树,首先输入一个字符,若为回车则退出程序,否则cx+3且调用函数root。然后该结点若有左孩子,调用leftchild函数,置该结点标志即第二个地址中的0为1,该结点进栈,再存储左孩子结点,递归调用左右,若没有左孩子,看有没有右孩子,若有,则调用

文档评论(0)

1亿VIP精品文档

相关文档