若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用( )遍历方法最合适。A.前序B.中序C.后序D.层次
若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用( ) A. 后序 B. 中序 C. 前序 D. 按层次 相关知识点: 试题来源: 解析 A.后序 后续遍历和层次遍历均可实现左右子树的交换,不过层次遍历的实现消耗比后续大,后序遍历方法最合适。
2.解题思路:以二叉链表作为存储结构,建立一颗二叉树,按层次遍历该二叉树,并实现二叉树中所有结点的左右子树交换,显示其结果。具体步骤: 从键盘接受按层次遍历的顺序输入的结点,以“#”号结束 将根结点进指针栈seqstack 当指针栈不空时,从栈顶取结点,如果此结点的左右孩子不为空,则把其左右孩子交换,然后再分别将...
若二叉树树采用二叉链存储结构,如果要交换其所有分支结点的左、右子树位置,利用___遍历方法最合适。 A. 先序 B. 中序 C. 后序 D. 按层次
解析 A [解析] 本题主要考查的知识点是二叉链表存储结构。 [要点透析] 交换二叉树的左右子树的过程可用递归方法完成,第1步将根结点的左右子树交换,第2步在左子树中递归调用交换函数,第3步在右子树中递归调用交换函数。因此,采用先序遍历的方法最合适。
百度试题 题目编写算法交换二叉树中所有结点的左右子树。相关知识点: 试题来源: 解析 对二叉树进行后序遍历,在遍历过程中访问某结点时交换该结点的左右子树。 具体算法如下:
设计在链式存储结构上交换二叉树中所有结点左右子树的算法。 typedef struct node {int data; struct node *lchild,*rchild;} bitree; void swapbitree(bitree *bt) { bitree *p; if(bt==0) return; swapbitree(bt->lchild); swapbitree(bt->rchild);...
}//层次遍历voidLayeredOrderTraverse(BitTree *bt);//交换二叉树中所有结点的左右子树位置voidExchangeBT(BitTree *bt){ BitTree*QUEUE[N], *temp, *p=bt;intfront =0, rear =1;if(p !=NULL){ QUEUE[0] =p;while(front <rear){ p= QUEUE[front++]; ...
九、编写算法交换二叉树中所有结点的左右子树 #include"stdio.h"#include"malloc.h"#define maxsize 10 #define NULL 0 typedef struct node{ char data;struct node *lchild,*rchild;}Bintree;Bintree *Q[maxsize]; //队列Q为指针类型,保存已输入的结点的地址 ///建立二叉树,返回根指针 Bintree *creat...
若二叉树釆用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用谝历方法最合适A前序B中序C后序D