【题目描述】
如果二叉树的左右子树的结构是对称的,即两棵子树皆为空,或者皆不空,则称该二叉树是对称的。编程判断给定的二叉树是否对称.
例:如下图中的二叉树T1是对称的,T2是不对称的。
二叉树用顺序结构给出,若读到#则为空,二叉树T1=ABCDE,T2=ABCD#E,如果二叉树是对称的,输出“Yes”,反之输出“No”。
【输入】
二叉树用顺序结构给出,若读到#则为空。
【输出】
如果二叉树是对称的,输出“Yes”,反之输出“No”。
【输入样例】
ABCDE
【输出样例】
Yes
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<vector>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 1001
#define MOD 123
#define E 1e-6
using namespace std;
char s[N];
int main()
{
cin>>s;
int len=strlen(s);
s[len]='#';
int flag=true;
for(int i=1;i<len;i+=2){
if( (s[i]=='#'&&s[i+1]!='#') || (s[i+1]=='#'&&s[i]!='#') )
{
flag=false;
break;
}
}
if(flag)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
return 0;
}
信息学奥赛一本通T1368:树与二叉树 对称二叉树 归属于 树与二叉树,更多同类题解源程序见:树与二叉树 和 对称二叉树
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!