7-6 交换二叉树中每个结点的左孩子和右孩子 (20 分)
点击查看题目
题目:
以二叉链表作为二叉树的存储结构,交换二叉树中每个结点的左孩子和右孩子。
输入格式:
输入二叉树的先序序列。
提示:一棵二叉树的先序序列是一个字符串,若字符是‘#’,表示该二叉树是空树,否则该字符是相应结点的数据元素。
输出格式:
输出有两行:
第一行是原二叉树的中序遍历序列;
第二行是交换后的二叉树的中序遍历序列。
输入样例:
ABC##DE#G##F###
输出样例:
CBEGDFA
AFDGEBC
//题目所谓的左子树和右子树交换,只需要输出时先输出右子树,再输出左子树即可 #include <bits/stdc++.h> using namespace std; struct btnode{ char value; btnode *lc; btnode *rc; }; void buildtree(btnode *&F) { char k; cin>>k; if(k=='#') F=NULL; else { F=new btnode; F->value=k; buildtree(F->lc); buildtree(F->rc); } } void output1(btnode *F) { if(F) { output1(F->lc); cout<<F->value; output1(F->rc); } } void output2(btnode *F) { if(F) { output2(F->rc); cout<<F->value; output2(F->lc); } } int main() { btnode *F=NULL; buildtree(F); output1(F); cout<<endl; output2(F); return 0; }
本文作者:kingwzun
本文链接:https://www.cnblogs.com/kingwz/p/15724125.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步