975: 统计利用先序遍历创建的二叉树的度为2的结点个数

news/2024/11/29 20:36:52/

题目描述
利用先序递归遍历算法创建二叉树并计算该二叉树度为2结点的个数。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#“时表示该结点不需要创建,否则创建该结点。最后再统计创建完成的二叉树度为2的结点个数。需要注意输入数据序列中的”#“字符和非”#"字符的序列及个数关系,这会最终决定创建的二叉树的形态。

输入
接受键盘输入的由大写英文字符和"#"字符构成的一个字符串(用于创建对应的二叉树)。

输出
输出该用例对应的二叉树度为2的结点个数。

样例输入

A##
ABC####
AB##C##
ABCD###EF##G##H##
A##B##
#A

样例输出
0
0
0
1
3
0
0

#include<stdio.h>
#include<malloc.h>
typedef struct node
{char data;struct node *lchild;struct node *rchild;
}BTnode;
int j,number;//全局变量
char str[100];//全局变量
BTnode* Create()
{BTnode*b;char ch=str[j++];if(ch=='#')//如果是#好,则置为空节点{b=NULL;}else{b=(BTnode*)malloc(sizeof(BTnode));b->data=ch;b->lchild=Create();//往左子树创建结点b->rchild=Create();//往右子树创建结点}return b;
}
void two_degree(BTnode*b)
{//度为二,也就是左右子树都存在//度是指,某个结点子树的个数if(b==NULL) return ;if(b->lchild!=NULL&&b->rchild!=NULL){number++;}two_degree(b->lchild);two_degree(b->rchild);
}
int main()
{while(scanf("%s",str)!=EOF){BTnode *root=Create();j=0;number=0;two_degree(root);printf("%d",number);//在这里输出换行反而会提示输出格式错误}
}

http://www.ppmy.cn/news/535930.html

相关文章

975. 只有2个按键的键盘

/* 初始时在记事本上只有一个字符 ‘A’。你可以在此记事本上每一步可以进行两种操作&#xff1a; Copy All: 你可以复制记事本上所有的字符&#xff08;不允许部分复制&#xff09;Paste: 你可以粘贴上一次复制的字符。给出一个数字 n。你需要在记事本上得到恰好 n 个 A&#…

南阳理工---题目975关于521

关于521 时间限制&#xff1a; 1000 ms | 内存限制&#xff1a; 65535 KB 难度&#xff1a; 2 描述 Acm队的流年对数学的研究不是很透彻&#xff0c;但是固执的他还是想一头扎进去。 浏览网页的流年忽然看到了网上有人用玫瑰花瓣拼成了521三个数字&#xff0c;顿时觉得好浪漫…

Leetcode_二分 975.奇偶跳

975.奇偶跳 //二分搜索 O(nlogn) O(n) int oddEvenJumps(vector<int>& A) {const int nA.size();vector<vector<int> > dp(n,vector<int>(2));dp[n-1][0]dp[n-1][1]1;map<int,int> mp; //<value,index> BSTmp[A[n-1]]n-1;int ans…

2018年排名Top 100的Java类库——在分析了277,975份源码之后得出的结论

最近&#xff0c;OveOps公布了The Top 100 Java Libraries in 2018 - Based on 277,975 Source Files&#xff0c;Hollis查看了这份榜单&#xff0c;做了翻译和补充&#xff0c;向你展示2018年的风云Java类库&#xff0c;希望可以给正在使用Java的你一些帮助和启示。不能说榜单…

【简单题string】A. Aramic script(Codeforces Problem-975A)

A. Aramic script codeforces题目链接Problem-975A 题意&#xff1a; 输入n个字符串&#xff0c;对每个字符串去重后&#xff0c;就是一个根对象&#xff0c;输出有多少根对象。比如样例一&#xff0c;a,aa,aaa,ab,abb&#xff0c;去重后的是字符串是a,a,a,ab,ab。所以只有a,a…

SWUST OJ#973 #975 #976 #977 统计二叉树节点个数

目录 #975 统计利用先序遍历创建的二叉树的度为2的结点个数 题目 思路 代码 #976 统计利用先序遍历创建的二叉树的度为1的结点个数 题目 思路 代码 #973 统计利用先序遍历创建的二叉树叶结点(0度)的个数 题目 思路 代码 #977 统计利用先序遍历创建的二叉树中的空链…

swust oj 973,975,976,977统计利用先序遍历创建的二叉树叶结点,度为2结点,度为1,空链域结点的个数,

统计利用先序遍历创建的二叉树叶结点&#xff0c;度为2结点&#xff0c;度为1&#xff0c;空链域结点的个数 思路&#xff1a; 1.叶节点即是左孩子和右孩子都空的节点 注&#xff1a;叶节点个数sum必须要用全局变量 题目描述 利用先序递归遍历算法创建二叉树并计算该二叉树叶结…

codeforce975D:Ghosts(思维)

题目链接&#xff1a;点击打开链接 题目大意&#xff1a; 这个题目的题面真的坑&#xff0c;个人感觉其实不是很难&#xff0c;但是我当时做完3题之后完全看不懂D题的题意&#xff0c;又感觉是个计算几何就直接扔那没管了。唉&#xff0c;其实知道题意之后蛮简单的&#xff0c…