草庐IT

二叉树交换左右子树递归以及非递归算法

递归方式基本思想:1、当待处理节点非空时,判断其左右孩子是否不同时为空:若是,转到2、否则分别递归调用左右子树进行操作。2、新建一个辅助结点,执行交换操作。3、递归调用非空的左右子树进行操作。BiTree*exchangeChild(BiTree*&T){ if(T==null)returnnull;//当结点为null直接returnnull if(T->lchild!=null||T->rchild!=null){//当待处理结点左右孩子不同时为空时交换 BiTNode*temp=T->lchild;//辅助结点,用于交换 T->lchild=T->rchild; T->rchild

二叉树交换左右子树递归以及非递归算法

递归方式基本思想:1、当待处理节点非空时,判断其左右孩子是否不同时为空:若是,转到2、否则分别递归调用左右子树进行操作。2、新建一个辅助结点,执行交换操作。3、递归调用非空的左右子树进行操作。BiTree*exchangeChild(BiTree*&T){ if(T==null)returnnull;//当结点为null直接returnnull if(T->lchild!=null||T->rchild!=null){//当待处理结点左右孩子不同时为空时交换 BiTNode*temp=T->lchild;//辅助结点,用于交换 T->lchild=T->rchild; T->rchild

C++实现二叉树的定义与操作

头文件及常量定义#include#include#include#include#includeusingnamespacestd;#defineTElemTypechar#defineStatusint#defineSUCCESS1#defineERROR-1#defineOVERFLOW-2结构体//二叉树的二叉链表存储表示typedefstructBitNode{ TElemTypedata; structBitNode*lchild,*rchild;}BiTNode,*BiTree;构造空二叉树//构造空二叉树StatusInitBiTree(BiTree&T){ T=nullptr;

C++实现二叉树的定义与操作

头文件及常量定义#include#include#include#include#includeusingnamespacestd;#defineTElemTypechar#defineStatusint#defineSUCCESS1#defineERROR-1#defineOVERFLOW-2结构体//二叉树的二叉链表存储表示typedefstructBitNode{ TElemTypedata; structBitNode*lchild,*rchild;}BiTNode,*BiTree;构造空二叉树//构造空二叉树StatusInitBiTree(BiTree&T){ T=nullptr;