推荐回答
#include "iostream" using namespace std; typedef char TElemType; typedef int Status; typedef struct BiNode{ TElemType data; struct BiNode *lchild,*rchild; //左右孩子指针 }BiTNode,*BiTree; int pos=0; charlist="ABC##DE#G##F###";//先序叨俗 //charlist="abc##d##ef##g####"; void CreateTree(BiTree &T) { charch = list; if(ch=='#') T=NULL; else { T= new BiTNode; T->data= ch; CreateTree(T->lchild); CreateTree(T->rchild); } } void PreOrderTraverse(BiTree T){ if(T==NULL) return; //空二叉树 else { coutlchild); //递归遍历左子树 PreOrderTraverse(T->rchild); //递归遍历右子树 } } Status ExChange(BiTree &T) {//构愚搁降造函数,勒掏使用递归算法进行左右结点转换 BiTree temp; if(T!=NULL){ //判断T是否为空,非空进行转换,否则不转换 temp=T->lchild; T->lchild=T->rchild; T->rchild=temp; ExChange(T->lchild); ExChange(T->rchild); } return 0; } void Display(BiTree &T) { printf("\n->>交换后的输出为:\n"); PreOrderTraverse(T); } void main(){ BiTreeroot; CreateTree(root); PreOrderTraverse(root); ExChange(root); Display(root); printf("\n"); }