//我做了一个程序,可以实现二叉树的左右子树的交换功能,#include/*二叉树类型的定义二叉链表形式储存*/typedefchardatatype;//树的结点数据类型为字符型,可以根据需要修改typedefstructnode*pointer;//定义二叉树结点类型structnode{datatypedata;//结点数据pointerlchild,rchild;//左右孩子结点};typedefpointerbitree;//定义二叉树类型/*先根遍历交换左右子树*//*层次遍历序列生成*/constintmaxsize=100;pointerQ->rchild=s;//rear是奇数,新结点是右孩子front++;}}returnroot;}/*交换左右子数*/voidexchangebitreet{pointerp;ift==NULLreturn;//空树,直接返回p=t->lchild;t->lchild=t->rchild;t->rchild=p;//交换exchanget->rchild;//遍历原左子树exchanget->lchild;//遍历原右子树}/*二叉树的先根遍历*/voidpreorderbitreet//先根遍历{ift==NULLreturn;coutdatalchild;//先根遍历左子树preordert->rchild;//先根遍历右子树}voidmain{bitreeT=NULL;intch;cout>ch;switchch{case0:break;case1:T=level_creat;cout<<"二叉树生成成功!";break;case2:exchangeT;cout<<"交换成功!";break;case3:preorderT;cout<
齐智敏2019-12-21 19:15:27
提示您:回答为网友贡献,仅供参考。