简答题

一棵具有n个结点的二叉树采用顺序存储结构,编写算法对该二叉树进行前序遍历。

正确答案

按照题目要求,设置一个工作栈以完成对该树的非递归算法,思路如下:
①每访问一个结点,将此结点压栈,查看此结点是否有左子树,若有,访问左子树,重复执行该过程直到左子树为空。
②从栈弹出一个结点,如果此结点有右子树,访问右子树执行步骤①,否则重复执行步骤②。具体算法如下:

答案解析

相似试题
  • 对于一棵具有n个结点的二叉树,其相应的链式存储结构中共有()个指针域为空。

    填空题查看答案

  • 在二叉树的顺序存储结构中,实际上隐含着双亲的信息,因此可和三叉链表对应。假设每个指针域占4个字节,每个信息域占k个字节。试问:对于一棵有n个结点的二叉树,且在顺序存储结构中最后一个节点的下标为m,在什么条件下顺序存储结构比三叉链表更节省空间?

    简答题查看答案

  • 若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指针。在这种存储结构中,n个结点的二叉树共有()个指针域。

    填空题查看答案

  • 一棵有19个结点的二叉树,采用链式结构存储,该树结构中有()个指针域为空。

    填空题查看答案

  • 对于一棵具有n个结点的二叉树,当进行链接存储时,其二叉链表中的指针域的总数为2n个,其中()个用于链接孩子结点。

    填空题查看答案

  • 一棵有n个结点的二叉树,按层次从上到下,同一层从左到右的顺序存储在一维数组A[n]中,则二叉树中第I个结点(I从1开始用上述方法编号)的右孩子在数组A中的位置是()

    单选题查看答案

  • 具有n个结点的二叉树,采用二叉链表存储,共有()个空链域。

    填空题查看答案

  • 一棵有20个结点采用链式存储的二叉树中,共有()个指针域为空。

    单选题查看答案

  • 已知一棵具有n个结点的完全二叉树被顺序存储于一维数组的A[1]~A[n]元素中,试编写一个算法打印出编号为i的结点的双亲和所有孩子。

    简答题查看答案