array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 二叉树 判断叶子节点的数目以及交换左右子树 - 爱码网

【问题描述】二叉树按照二叉链表的方式存储。编写程序,计算二叉树中叶子结点的数目并输出;编写程序,将二叉树的左右子树进行交换,并输出交换后的二叉树的后序遍历序列。
【输入形式】二叉树的前序遍历序列,空指针的位置输入字符#
【输出形式】叶子结点的数目 左右子树交换后,后序遍历的序列,空子树的位置输出字符#
【样例输入】ABE##F##CG###
【样例输出】
3
###GC##F##EBA

 

  1 #include<bits/stdc++.h>
  2 using namespace std;
  3 #define N 100
  4 typedef struct Tree{
  5 
  6     char data;
  7     struct Tree *LeftChild;
  8     struct Tree *RightChild;
  9 }BiTNode,*BiTree;
 10 int leafcount=0; //这个计算叶子节点的个数 要是全局变量 因为在函数传递时压根不传递int参数无法传递地址(引用传递不行)所以只能全局变量
 11 BiTree CreateTree(){
 12 //前序创建一颗二叉树
 13     BiTree tree;
 14     char ch;
 15     cin>>ch;
 16     if(ch=='#'){ return tree=NULL;}
 17     else{
 18         tree=(BiTree)malloc(sizeof(BiTNode));
 19         tree->data=ch;
 20         tree->LeftChild=CreateTree();
 21         tree->RightChild=CreateTree();
 22         return tree;
 23     }
 24 
 25 }
 26 void PostOrder(BiTree root){
 27       if(root){
 28          PostOrder(root->LeftChild);
 29          PostOrder(root->RightChild);
 30          cout<<root->data;
 31       }
 32       else{
 33         cout<<'#';
 34       }
 35 
 36 }
 37 /*void PostOrder(BiTree root){ //后续非递归遍历
 38 
 39       BiTree p,q;
 40       int top=-1;
 41       BiTree *s;
 42       q=NULL;
 43       s=(BiTree*)malloc((N)*sizeof(BiTree));//创建栈
 44       while(root!=NULL||top!=-1){//节点不为空or栈不为空
 45            //if(root==NULL){cout<<"#";}节点为空时要输出# 但是不知道放在哪个位置
 46 
 47            if(root){
 48              s[++top]=root;
 49              root=root->LeftChild;
 50            }
 51            else {
 52               root=s[top];//取出栈顶元素
 53               if(root->RightChild==NULL||root->RightChild==q){
 54                    cout<<root->data;
 55                    q=root;
 56                    top--;
 57                    root=NULL;
 58               }
 59               else{
 60                 root=root->RightChild;
 61               }
 62            }
 63 
 64       }
 65 
 66 
 67 }*/
 68 int LeafCount(BiTree root){ //输出叶子节点的个数
 69 
 70         if(root){
 71             if(root->LeftChild==NULL&&root->RightChild==NULL){
 72                  leafcount++;
 73             }
 74             LeafCount(root->LeftChild);
 75             LeafCount(root->RightChild);//这算前序遍历计算 三种遍历方法都可以的
 76         }
 77        return leafcount;
 78 }
 79 BiTree Exchange(BiTree root){//交换左右子树 也是递归的算法  前序后序皆可 换换语句顺序就好 中序左中右麻烦一点
 80        BiTree temp;
 81        if(root){
 82            root->LeftChild=Exchange(root->LeftChild);
 83            root->RightChild=Exchange(root->RightChild);
84 temp=root->LeftChild; 85 root->LeftChild=root->RightChild; 86 root->RightChild=temp; 87 88 } 89 90 91 } 92 int main(){ 93 94 BiTree pt; 95 pt=CreateTree();//创建一颗二叉树 96 cout<<LeafCount(pt)<<endl; 97 pt=Exchange(pt); 98 PostOrder(pt); 99 100 }

 

相关文章:

  • 2019-11-04
  • 2020-02-14
  • 2020-02-09
  • 2021-01-19
  • 2018-09-28
  • 2018-04-12
  • 2019-09-26
  • 2021-11-14
猜你喜欢
  • 2018-11-14
  • 2021-08-05
  • 2018-10-31
  • 2020-09-28
  • 2018-01-14
  • 2021-03-12
  • 2020-01-05
  • 2020-10-16
相关资源
相似解决方案